|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 5 K' {* e1 p2 w5 v
8 k6 `$ t3 k! d& @
[FC][忍者神龟3][END选关]
2 q4 ~! V- @- S, r' k# E! ? W3 o1 E9 p
时间:2017.3.30
3 S! y% h- l! K, j6 L- T作者:FlameCyclone' L, o9 t$ I+ p7 l8 }
内容:
4 n+ u: |4 s% _$ ?' a! ^ 1.关卡选择: 标题时,左或B减,右或A加;/ A Z8 T/ V( I. ?
2.全屏击杀: 暂停后,按A键切换;
# W% ? m2 p+ u 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0/ t" R4 ]2 z/ x, p; ^% ?' k
- ora_data:
0 P5 q- b. Z5 o& A! f+ C - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
0 k! K3 j, G4 s - and_data:
2 A8 u" J, A2 S& Z. w h9 E+ z - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
% c' x. z8 t l, q# Q; Y -
6 W6 L6 U8 Y* E, S - button = $F8
3 v/ t: Y4 L# R" P; B - flag = $6000
: h7 D: J/ K3 s7 [ - pause = $0045 {3 N8 v' q+ j f# t( _
- : V6 V# i9 _2 Q2 G
" j7 d; x) B% L- w8 H5 p& g- .ORG $F90D0 O+ a% ]1 R" P! ?, d
- JSR $FEC0
3 T. ^% F9 t6 H6 V, a5 d -
; n2 R# F* d( T0 B - .ORG $FEC01 |$ P7 z. y6 C# z
- STA $54,X
8 k0 `: K4 J; Z5 e1 Y - STY $FA,X' J2 N. Y0 P2 {/ } V3 E
- PHA
+ w# i! l6 Q8 e+ j3 L4 M/ L( m% W - TXA
2 d+ f3 ]1 n2 ?0 Y2 U - PHA
: s8 f* _* b# N( e- c; T! n: a - TYA
% i/ ~/ h( y( ~3 w, p& C - PHA
) b9 `( o4 I* Z - JSR KEY_OPERATE8 p3 J. D. z4 U% t7 o! I3 S
- JSR INV- Z6 N" m3 Q& x8 D; \# J
- JSR LIFE7 L/ b# m- e* \3 }2 C) k, Q
- JSR BLOOD
! K$ K( ~7 m( G+ H - PLA
2 g# r2 ?, h$ s9 I% u - TAY h& ]6 S- g# E2 ~- Q9 u3 |
- PLA
& ]7 K& A, B0 V6 S3 k A" M) e - TAX; ?/ w# y: M, o, D& {
- PLA
/ G% [: \9 ?/ W$ K1 f& D0 }$ ^ - RTS2 Q8 T( z* {5 ~, c$ `
- KEY_OPERATE:8 K( r3 |: z) R
- data_protect:" I* I! Y( t$ i. q! e8 b
- PHA6 | H" P8 x: J
- TXA6 b3 T) T0 m9 p6 M* K0 t
- PHA
" E, P+ W; B; u: t - TYA
' w: U G0 I: A' O. c( G9 { - PHA
1 r" ]2 L8 ?( i' p
% o7 i4 O$ K( Q: F) T% o- FLAG_CMP:
8 ^' X! m3 A( _7 J5 } - LDA $600F) b* v5 E, Z& ~# ? q
- CMP #$7F ;标志数据初始化条件判断
" ^) ]0 W* L% O+ M% b - BEQ pause_cmp
4 c" p* a' c. Q+ k$ H& ]8 }% @ - LDA #$80, ~2 x& E/ N7 e3 S
- STA $A001 ;6000-7FFF写入启用* S. F6 B3 K& i$ g* D6 S
- LDA #$00
9 h* l+ T9 k$ w1 O2 d# y- S - STA $6000 ;数据初始化# I' G: n4 Y8 X" T. L
- STA $6001 ;数据初始化
7 ]- r! E3 f3 u7 z/ u0 f - LDA #$7F9 }6 v$ V/ {' D
- STA $600F" D B7 e2 {* _& y9 M' Z, l
- pause_cmp:' c) }& g; L& D1 {6 z; }0 P( b8 d! G
- LDA pause
# h% N- G% V: B - CMP #$01
1 [; w/ f& n- n% j& p- \ - BEQ button_press
+ W4 T8 O" d' `: L, l5 A# o. V - PLA1 N7 [& ?' Q! j$ P+ j3 d+ ^
- TAY
5 _$ y3 ~0 K0 f. V* N9 N - PLA
/ Z- |* A0 y. e5 f% m3 i' E - TAX
6 Q: J: R0 j$ `, f - PLA
5 H& d" S3 }% b* M) d" X. G8 V1 E0 Y - RTS$ m }1 s# e6 h8 j7 V; R$ X
' I. h8 `, v9 O" [9 a; k) W( p( _% K- button_press:% C. X1 }5 \9 @& z- W. w
- ini_Y:
% n, J3 V1 _9 h' N - LDY #$002 r; z# W) w/ Z( g6 C
- button_cmp:
9 U; s& a% U3 o7 j0 U9 c) F - LDA button,X4 s' A# z. l6 ?1 N
- CMP ora_data,Y
9 o7 S# \0 K4 L2 T4 X* Z4 B* L1 W - BNE count_Y_cmp
2 J5 d' P$ X i2 o2 Y& U0 l7 Y, p - flag_cmp:. u% K8 c6 |* L& w) P
- LDA flag,X! W- _: [5 T4 y* W
- AND ora_data,Y
F$ I' K! j5 d1 S5 c) E* v k - BNE flag_and
2 z; ^+ L8 g$ R+ U - flag_ora:
- A1 F! S- s2 k' @6 |& H6 j8 b/ \ - LDA flag,X
5 E" p( p0 h& T/ @; ]2 _' g - ORA ora_data,Y, N/ I+ S: a% E
- STA flag,X6 [) G6 P: E4 U3 b. F( G' h" I
- BNE count_Y_cmp
/ d) x V4 B* P( g( b5 M: `+ @ - flag_and:
! \4 q7 U1 B. q - LDA flag,X$ O' R9 i" R* o2 b
- AND and_data,Y
& D% s; |& g& J: } - STA flag,X
: t" r. q o/ N/ A$ `0 [3 h - count_Y_cmp:& R% B2 {' U% j, L) T
- INY
% c0 r: A: G" t0 Z - CPY #$083 s W: h& b5 p: S. Y7 s+ O
- BCC button_cmp
1 F, B6 V, ^5 \& }/ p% o - * k( q3 I2 c' F! G9 W
- data_extract:9 |" z/ J% Y6 T& X) c
- PLA" t+ e5 b! ~! s
- TAY
& _" `# o) _0 y3 R9 l$ O9 T H - PLA
2 y3 z$ g' T3 y9 Y# [ - TAX
) u9 \2 H+ Y/ p8 v9 n4 Y - PLA8 V; M* w: H) k" V
- # g H5 T; l- r
- return:
, T3 r& T+ J3 `% ? s - RTS3 P+ t' F1 H: m1 i9 ^# Q
-
|. l- [6 ?% S% J - 4 ?% x/ m& Q! I* p, x7 Z: U3 K9 V
- INV: ;无敌! v" \; Q2 |5 {& P( H
- LDA $6000,X
# c, q, Q! v2 ` - AND #$088 H- K* w" b5 W
- BEQ INV_RTS0 l1 X( O0 o& ~1 X* t0 b8 m! y$ y
- LDA #$05+ W5 S" z# B% n) X" e
- STA $04FF,X
( o6 |- G8 p$ f1 q- c; k - INV_RTS:
8 m. s' W& q" p7 T- w# \2 W. X1 G - RTS
* R) ~4 W) z* t# E - ; a& a A: A! ~- _! A( V" j
- 7 O% o9 h6 I. i6 G' }: `; i
- LIFE: ;生命
8 b/ T3 V! H% ?" x% @5 j - LDA $6000,X
/ U* e) z5 `3 b. H - AND #$04
( G# j% A9 [. v! G# ` - BEQ LIFE_RTS. z& R/ x" y( g. R4 I! e
- LDA #$09
+ Z) D. \8 s0 u: @' x h; | - STA $6A,X
* S+ w, S+ z' X7 t$ ?5 J' W - LIFE_RTS:4 k! {( ~ C: f5 D
- RTS
' h4 U' L8 ^+ g: p% `0 l- n% Q - 2 O" i4 i: J. Y7 e' T3 M
- : D; [" c* n2 [: K2 N
- BLOOD: ;血量
O _& c& M7 i - LDA $6000,X6 V6 e' h2 }2 g F: t
- AND #$01, I. s/ |4 q0 q
- BEQ BLOOD_RTS6 y/ T) I+ u5 z' G3 Z
- LDA #$7F# @% M* K6 [. ^5 V9 Z
- STA $04F1,X
( [ q3 k: ? x P' C% h - BLOOD_RTS:! g/ g# P! p, u& T4 m6 N
- RTS3 P# U4 L7 x: n p
- ( S9 A* Y. a- _
-
% x" X6 I9 K& a" W& n: v7 e& j -
* g$ A, p9 m6 F; F1 a9 Y! _1 I - 0 i0 g* Z- I: s# I4 w
- .ORG $D29F
* ^# t: j: h4 ^6 \; B3 k - JSR $FF808 h0 i! P# t! K" T
- $ u, {: C* I- G! J2 X- [6 \+ p. e- B& `
- .ORG $FF80& A- E1 w: b8 E/ K; v( D3 J
- KILLBOSS_BY_ONE ;BOSS一击必杀
# B L- H- j' T) [3 c: J! x - STA $0628$ b+ w% N9 B3 N& Y
- PHA. K8 m3 {, K" I; L0 `4 k0 [5 T. y
- LDA $6000 ]9 U' ]- o+ h" H
- AND #$40
7 B% j! {# Z8 L" x7 @) S - BEQ ADDRFF8E+ b* z- [- W' Z0 m' E
- PLA( I+ ^# @& \, _. k' x- _& n
- CLC ;敌方死亡状态判定
; B3 ^( N S* I; i; H1 s; Y - RTS, e1 d r# t- Y) Y; v" }: I' Y
- ADDRFF8E:) }0 Q6 G! B; C8 p* R- J
- PLA
. r* O! _, `! ?8 w P9 t/ n - RTS
+ ?+ i( x$ B; s9 a& Z
2 Y9 o B" f8 H, b: D# N- 1 ?7 W0 D6 Q, }6 j7 k
- .ORG $D151, F ^9 Y4 n2 k8 `" f; o/ K
- JMP $FFA0
* M) q' G7 i& v - / v3 h5 ?9 g. v- H2 K2 A
- .ORG $FFA05 q7 E: m7 J D
- KILL_BY_ONE: ;杂兵一击必杀
, z- v2 n* O! D - STA $0621,X
; I# y4 G' A- u4 N( e - LDA $6000. k( D/ U6 b- Z1 r+ _( b
- AND #$40
' r7 I* H5 S: n( b$ \, |# F - BEQ ADDRFFAD. e$ t) Y" ?# V4 a; Z1 F% B
- JMP $D19A ;敌方死亡程序跳转
1 d" a2 x; }) Z4 R# k# L2 { - ADDRFFAD:+ h6 H) K0 q1 o6 J% s6 [9 c
- JMP $D154 g6 W# p l5 ?6 } n! r
- 3 i! h1 D7 Z0 A5 v! L) P
-
1 N4 A+ }3 @ a# R; }# L - .ORG $A7F6, M! m) l+ H. Q9 [- E5 u
- JSR $FFB0! f$ C9 }/ j _9 e4 N
- 3 w0 }/ n0 b E1 t1 q% x; z
- .ORG $FFB0 ;全屏攻击
2 u+ Q: Q8 {: V1 x0 m - PHA5 U4 g* Z5 \" \: Y$ I; @0 T5 I+ p
- LDA $6000. m, G3 m: }0 g$ n
- AND #$80. W1 i# P" I. V: C
- BNE ADDRFFBD
; k6 k; }0 {/ f8 X- o/ Z% N1 a$ w - PLA
; e" H. r" {2 y- f, ] - LDA $0015) B A1 ?4 S* }8 @
- SEC
, d! @% `0 [# ^6 E' c7 J4 ]% N - RTS
# O2 X" ?# t+ C! q J3 q7 v6 v6 S - ADDRFFBD:
+ r2 j( h1 i8 ?2 I7 x - PLA& f# ]$ B2 E1 `: ~( L) C6 ~9 \
- JMP $A826" E/ r& `: j2 q/ w. B3 `& k
- 5 b- `( K5 _$ j
- * w( w- ?. }+ O$ q" L
- : I4 F( j! z' t
- .ORG $AA6A
# \& W0 `% A5 s1 e& z - JMP $FFD07 w5 i% ]2 {* F1 Q# ~6 Z6 T1 v
- / {, y' \2 b+ u: s6 H6 o4 \
- .ORG $FFD0 ;敌兵动作忽略
+ T* s w' E+ m - PHA" J$ Q, w& } [/ b$ o! D
- LDA $60007 {/ Z. C+ _# H& I; o- E
- AND #$80
+ w6 W/ a4 f- V+ _; u+ x( R& p - BEQ ADDRFFDC
& d2 p2 T6 Y2 z4 v2 q# R+ i9 S - PLA
3 ]6 o5 P" } h$ j6 w% I$ W - JMP $AA72
* o0 X! k9 K$ I* S7 ~, V7 {. k1 R - ADDRFFDC:
6 n1 D w% I* m. O - PLA
1 z# ^( @1 D9 L3 D F: t - LDA $0629,X
, y3 H* O* `( V+ Y0 Z3 G; b! u- l - JMP $AA6D: g4 x- i t4 |; m# J" g3 a
- # ?& A! z" H: B: w5 o/ m
- ;[FC][忍者神龟3代标题选关程序]. Q) ^2 k/ V8 [& \5 b7 x
- ;作者:FlameCyclone 2017.4.1, V: a" Y: H) O7 G+ d& J
v8 U& k" Z z5 F3 |! V- : n7 w# W; `; P
- ;配置数据# T7 d0 J4 c3 V$ s
- KEY_ADDR = $F8 ;按键地址
& s9 I" n5 W+ Q* @5 d+ } - STAGE_TEMP = $6010 ;关卡临时地址) q0 p8 \7 H% U6 F: R: Z1 R, ]. [( G- J
- STAGE_MAX = $0E ;最大关卡数
5 A, T* Q2 u/ p( z7 S9 n - TITLE_A = $20 ;标题条件A
# `7 A2 f3 O% v: k( Z' ]3 m0 U; r - TITLE_A_ON = $02 ;标题条件A有效状态判定
$ m- R1 f2 d% a& ~' _. G- o - TITLE_B = $21 ;标题条件B
+ i# n _. E8 I9 J8 U7 _7 l9 S% O: | - TITLE_B_ON = $03 ;标题条件B有效状态判定! P/ V4 _$ ^& m1 i7 a8 R( P
- PPU_END = $FF ;PPU结束符# c/ k. Q8 ]: v, M1 ~# y3 v
- TIME_LAY = $4A ;标题显示延时地址* A' O9 D; a O! p' m$ R
- BUTTON_DEC = $42 ;关卡减少按键& L/ ^4 D1 p5 z$ N0 M. p
- BUTTON_INC = $81 ;关卡增加按键; F o" Q9 g3 \3 Y
- NUMBER_A = $06 ;数字A距离STAGE偏移量
" ?2 p$ n- b3 s1 n. u - NUMBER_B = $08 ;数字B距离STAGE偏移量
$ G. s4 j" b: n* n0 U - PPU_ADDR_H = $23 ;STAGE写入地址高位
0 l+ h: {& w9 ^) s* c - PPU_ADDR_L = $8C ;STAGE写入地址低位3 i- t' \$ h/ x$ m! M; X7 m
- CHAR_S = $A2 ;字符'S'. m2 [' h0 b. H8 G' D |
- CHAR_T = $A3 ;字符'T': D" f, {! Y/ n/ `! k$ k
- CHAR_A = $90 ;字符'A'
$ }: G& u- Q" ^" Z2 T9 Q0 K6 q - CHAR_G = $96 ;字符'G': ~9 k: A9 f( Q- d+ c
- CHAR_E = $94 ;字符'E'- I" m* ?; z' B6 |, J
- CHAR_SPA = $00 ;字符空格1 c. {. h2 d1 g! t, R
- CHAR_LIN = $AE ;字符'-'; b% q" L1 r5 I0 v6 `0 e2 h4 E
- CHAR_O = $9E ;字符'o'
8 c) A$ f1 a: s. k3 N# T2 {/ A - NUM_1 = $81 ;数字'1': B4 Z }3 B) Q1 Z7 s3 u
- NUM_2 = $82 ;数字'2'( Y! {& g/ H; [7 M
- NUM_3 = $83 ;数字'3'. K) t; [' `3 L- h7 V2 |
- NUM_4 = $84 ;数字'4'
8 B" I/ j$ F+ ~3 Q8 I- E - NUM_5 = $85 ;数字'5'+ M: v' t9 ~( q) z* E
- NUM_6 = $86 ;数字'6'
0 Y" v# J5 V& E3 K. [ - NUM_7 = $87 ;数字'7'
* R3 A, d. o# ?$ j2 Z) c9 n# ] - NUM_8 = $88 ;数字'8'
3 \( Y1 x4 y% v& B+ \( ]$ D - NUM_9 = $89 ;数字'9'% P" i! I7 z# J: d
- NUM_0 = $80 ;数字'0'$ q) F1 i+ p# i
- ' s9 i1 Y- A- f- |, F: c/ Y5 G$ H
- .ORG $F82A* T( `' B! [( p8 q4 [4 H/ K
- JSR $E700
7 S0 f9 I2 K) Q9 h" X3 z -
4 @( d$ I. d5 p! v. R- _# N - " k; ?: I* D/ C- Q
- .ORG $E700 p( Q5 Z! y5 o3 |) x9 G+ ?. i
- * @; T2 D7 B) W. q4 W6 ?# Q) h
- STY $4014 ;补上覆盖的精灵写入指令5 L0 ~% C8 p/ e9 s ^
- PROTECT_DATA: ;数据保护
. }& _4 |" l+ H5 K/ C, v; \! y - PHA ;数据保护开始
# G! U0 E6 Y. d' b7 g - TXA
4 `; X* [8 y" ^ K; t4 @ - PHA5 U* F8 L9 g0 W# j& G/ w
- TYA
2 B. m! {; Q: x- q. @- z - PHA ;数据保护结束! A( g0 {+ e& }- y1 K
- LDA TITLE_A
" Q4 Z% N1 ^$ D8 n* U* Y - CMP #TITLE_A_ON ;比较是否为标题画面
3 g, ]. ^1 S% ?: {) X1 A - BNE RET2 Y- W4 h$ m; z0 B! U8 X8 f. o
- LDA TITLE_B
6 D6 t7 G) n |- j - CMP #TITLE_B_ON ;比较是否为标题画面
9 _: l( x. w3 N4 q" [# Q) ] d - BEQ PPU_STAGE
+ H3 r1 ~$ _2 H5 ?: w/ X; x- r2 c - RET: ;恢复数据
% r! D0 \$ Q+ t- K! p C Y& } - PLA ;恢复数据开始$ _! v' x1 U( @+ l' s
- TAY/ w8 ] T- G# a% j7 O
- PLA; p2 C& i7 X9 C& b C$ k8 g$ K, P
- TAX
. [5 b8 d! h* F7 J1 E; f( i" S - PLA ;恢复数据结束9 ^# c- L# E" Y* C, h/ i
- RTS ;返回
5 H$ Q P+ S8 W0 L! M9 F3 t- X - PPU_STAGE: ;字符STAGE写入程序
T2 B" v0 K; z" W& ~+ H8 z- I - LDA #PPU_ADDR_H # n) h. o0 r' k
- STA $2006 ;设置PPU字符写入高位地址' A' } i. c7 D/ U' N. J
- LDA #PPU_ADDR_L
( v( G+ i4 c0 J: k! R% q# x1 _ - STA $2006 ;设置PPU字符写入低位地址6 s- d2 j2 d( f, ^' a8 n
- LDX #$00
* S8 n3 }. d9 W/ F# a! b) M8 r - PPU_STAGE_WROTE: ;写入STAGE字模
; u* V# f/ [) ~3 R" C5 L* H, H - LDA STAGE_DATA,X
: P" T% f' @& m" a+ r - CMP #PPU_END ;判断是否写入结束; u/ s7 T3 ^- P
- BEQ STAGE_CMP. e8 o P1 R' C6 o
- STA $20075 V! L- T ^, v! g' ]# a
- INX% o. W( Z' c$ {5 I" P
- BCC PPU_STAGE_WROTE
7 f3 \/ x, d: j' x6 R - STAGE_CMP: ;选关操作8 C! Q4 [% a/ _/ Q% b5 c3 Z
- LDA STAGE_TEMP
8 P7 g4 W9 [; o2 R% x - CMP #$FF ;关卡数据初始化条件判断
% \# q) ^& x2 R) P7 { - BNE KEY_B
( v& C! k- y6 a/ u - LDA #$006 U0 g- ^. z9 Z& h
- STA STAGE_TEMP ;关卡数据初始化
3 b5 k0 K9 y9 P0 |1 { - KEY_B: ;关卡减少& q/ i0 B( M. h' M
- LDA KEY_ADDR
. e1 p3 [: K: n: A5 @# d, W - AND #BUTTON_DEC ;按键B或左减关
6 ^: ?! W1 o% L2 ?* S$ K" _ - BEQ KEY_A$ i! |5 N! I- B
- LDA #$FF
4 r/ }4 L+ u! c; S" v( } - STA TIME_LAY ;重设标题延时/ k: W$ Y3 y) l# U G: R
- LDA STAGE_TEMP* C( O# o& l, y. ?! R. @
- CMP #$00 ;关卡比较 _6 O* \4 X; g; N, G4 o C. ]
- BEQ KEY_A/ `; X9 w( I: ^- u+ ]& h, [$ P. V
- DEC STAGE_TEMP ;减关
% X: X0 r, F. U' ^% G5 O - JSR MUSIC ;按键音效
2 u) R, f/ ]# I* a5 @ - KEY_A: ;关卡增加3 @0 J1 g$ L& K
- LDA KEY_ADDR7 p; L: I8 Z% n
- AND #BUTTON_INC ;按键A或右加关/ D, l1 O! P( ~$ ?
- BEQ PPU_NUM_WRITE" P g6 p) z$ ]8 ~- ?/ A" w
- LDA #$FF
: U3 [* C$ w' z5 Z6 S# M - STA TIME_LAY ;重设标题延时
. O& @, L0 g$ Y$ M - LDA STAGE_TEMP8 c8 i/ |1 H4 S$ D: [ W
- CMP #STAGE_MAX ;关卡比较
) U- I; {9 C9 i. O. G& j( h - BEQ PPU_NUM_WRITE
1 ]8 A" r- r0 }5 \1 {" y" w - INC STAGE_TEMP ;加关% t; ^- w# j3 ~5 ^) O1 T
- JSR MUSIC ;按键音效
" G- A7 Y1 |1 ^0 S- U$ {/ [ - PPU_NUM_WRITE: ;关卡数字写入地址
! E9 W. y/ G. `3 t# ? - LDA #PPU_ADDR_H" E$ m, o9 y* p. [/ ?" i: |; N9 l, D
- STA $2006 ;设置PPU数字写入高位地址6 a' Z: L L/ A$ e7 L' s! ]5 C- x! b
- LDA #PPU_ADDR_L
4 M) E! M( F3 N* d - CLC
F6 h: k: ~* ?1 C - ADC #NUMBER_A+ J1 p& M9 B+ k8 A3 W8 W* _5 @1 m1 G
- STA $2006 ;设置PPU字符写入低位地址# \$ C& F8 {7 w" i% e' B
- LDA STAGE_TEMP$ C& [# S* u' d( [3 ^" [' z
- TAX
8 f0 X8 t9 s/ g5 L6 m - LDA STAGE_D1,X ;写入数字
, p8 j" B! o/ h1 a - STA $2007
; `2 j) d O1 _4 N - LDA #PPU_ADDR_H' Z9 U7 k3 y- k% O: z4 J& Y
- STA $2006 ;设置PPU数字写入高位地址
6 f- a- A9 E! G2 e4 I2 E+ K8 `* a - LDA #PPU_ADDR_L
' N! K' ?) }6 ?/ A& j - CLC
; P+ u* }# }. Q( v% ^+ \ - ADC #NUMBER_B
1 n, Z$ A' b& U- g% n2 v& s - STA $2006 ;设置PPU字符写入低位地址7 D0 F( k5 W5 ]5 s9 {
- LDA STAGE_TEMP6 F3 `& P- }% G3 V9 F# Q
- TAX
/ Z+ d+ j8 Y9 Z - LDA STAGE_D2,X ;写入数字
# |, `1 v) E5 u0 F - STA $20075 C( I" v/ T7 Y6 l
- STAHE_WRITE:
9 G9 }$ ^% h9 y" p- ]& h8 o* y - LDA STAGE_TEMP
7 M- n3 h5 J* r* { - STA $2D ;初始关卡写入
! f! y1 L8 \' t( L) V5 }: y - PPU_RTS: ;恢复数据+ |+ C0 e) R; ^2 L
- PLA
0 Z7 e! F: ] b# r* i) b7 V - TAY
% P% M/ c( c) U7 F1 }5 _ - PLA
( ~4 z3 p8 h$ s0 R3 X0 {" l' [ - TAX' u- b2 ]! a- q' | O
- PLA; G. z! E- G7 i: k8 k. N
- RTS" ^ ]7 \9 N3 ]
- " V F! ~& R% I$ k/ L/ j# G
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据; Q( ~5 t# g- n5 ]6 {( F
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END/ E9 i5 L9 y, S# D3 h" p
- * e. D- o" n7 ^4 O; D \
- STAGE_D1: ;关卡数字
! s& ? }. }8 c% L2 _ - .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_85 n4 w9 @& Q& n: f9 b) T
% }( h; P7 L* T0 K' ^- STAGE_D2: ;场景数字+ K; c* F: O) ?7 c( [& v
- .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
& o" X9 n2 a& q( V - - k- h9 _4 _$ \$ G$ J, a9 Y, B
-
) b, I9 \- H' W' w( v2 q - MUSIC: ;按键音效8 ], ^( j8 V7 ^$ ^' l+ {8 G
- LDA #$3B ;音乐号8 c! U2 t1 W, K' d- B$ t3 }7 S0 b
- JSR $919E ;系统音乐调用
9 ?7 U, Z( ~/ s( r* m; b - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;9 S1 N8 _7 {( f2 i5 U0 q
5.生命加满: 暂停后,按下键切换;! M8 T: p. \* ?2 g3 \
6.血量锁满: 暂停后,按右键切换;
4 X6 C/ ^ P+ n: P+ S + _1 i' @4 j& j: ^' ~. g, E
( o/ u. ^, s7 l* L& q2 x' p! F
5 U- P) Q& L7 C3 l$ t& m
{) ]5 p* G& V* t @
: K# z' c/ Q# J0 xFlameCyclone.ys168.com$ _& B5 U) @9 H3 `
www.nesbbs.com
; E* A) o* a! l6 X$ F
; X) Q8 L, |' Z9 F! r/ D |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|