|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
& r$ D0 S$ u. h* D8 m) U) ]8 R" g. J4 \ w/ a) ~0 C% a# U
[FC][忍者神龟3][END选关]8 B- q* r0 T7 r9 a# p, I
6 q& b* X; }- R2 Z' f( l
时间:2017.3.302 ~/ U: N0 K. Z; S" V h6 C
作者:FlameCyclone
; [" A- b4 K2 p, O5 D. b内容:
$ _3 `. f/ O% K; I+ z+ _ 1.关卡选择: 标题时,左或B减,右或A加;5 }1 A, \: x7 [3 c7 X8 s
2.全屏击杀: 暂停后,按A键切换;
" \, R& @+ {3 E S% {/ n 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
; O! ?$ e a4 l1 C! ` - ora_data:+ o' m: ], T8 C
- .BYTE $08,$04,$02,$01,$80,$40,$20,$105 m# z. ]' r7 D. O
- and_data:, l* W8 s: a9 W4 g9 K& }
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
% `% L0 _; I* b. y -
. z O5 L4 l- Q& ^" ~, b* r D - button = $F8
0 i. ~, U! D9 H2 E, x! X - flag = $60007 U% T# d# {- Y# Z8 G" D% [
- pause = $0045
+ R# `! M! \; }# A$ e( C - $ E7 b; u4 U8 y% i; O
- 8 O. c* d3 Z- t/ H _
- .ORG $F90D
: N7 ?) O+ n) [8 {& U - JSR $FEC0
! P( Q0 a# A! b) Q; [; }/ q -
6 H* f6 u! ?' D0 m - .ORG $FEC0
& ^8 W' o R! W, d) n5 A- M4 ?; W' q - STA $54,X
9 G# }" G9 Z0 i) a9 y - STY $FA,X
# _' w& L! N4 w4 B* C - PHA# k( i+ w7 b/ P% }! a: b/ E" _
- TXA3 k, s( V* }7 O% t, C* r0 ~
- PHA$ j/ W2 p, T" D3 F' a e5 N
- TYA- n' k1 \. g& I3 W4 {
- PHA3 U# b' d+ _4 `7 f
- JSR KEY_OPERATE2 I/ p. B0 H5 q4 T+ {" _1 f
- JSR INV' t. r) z! H/ Q0 \: {
- JSR LIFE
6 ?2 j1 u s7 X7 Y- { - JSR BLOOD
: Q2 h& N0 ~4 k( a$ @ - PLA2 K# h3 z* l6 e& `" m( H+ g ]
- TAY
+ B- _+ G K2 v- K- }2 l# c - PLA
# J+ u# g/ J/ I$ @+ j1 g; L - TAX5 U4 N2 c r, U7 S" {! z9 `. d
- PLA
) D) |6 B' [5 X! K - RTS
; h6 k5 B* W& Q1 `; L- b - KEY_OPERATE:1 N6 i! t3 g4 p# T6 U2 i- x* f
- data_protect:
' M, \$ q- W1 t8 b8 W! ^ i - PHA
+ H8 X. @6 i$ O1 I - TXA9 P4 n# }- ~! J6 X) `' l
- PHA
5 E! t- A2 v( P/ E# z+ j9 ]. [ - TYA3 o1 C0 |& {2 |7 G. U2 M) `0 `: S/ V1 D
- PHA
4 R6 v- f5 L8 ?2 A
( s" {. f m1 D6 `. {% v- FLAG_CMP:
k0 m$ s& q2 _5 r6 O - LDA $600F
" b0 l2 j% u: r/ o - CMP #$7F ;标志数据初始化条件判断
4 I" x3 {1 c# y$ y( G - BEQ pause_cmp' d# o5 H' F5 L% |, J5 q% l
- LDA #$80
/ v& v, L7 ^$ R3 v& G - STA $A001 ;6000-7FFF写入启用5 r" d( c/ B9 b F$ Q
- LDA #$007 A9 M8 b1 I; m% C1 v& b7 ^: D5 }
- STA $6000 ;数据初始化! \5 V/ c6 _5 o% S3 i, b% g
- STA $6001 ;数据初始化! Z% O4 U+ p# D! S" O
- LDA #$7F& l$ h t3 g% ^% _# i+ {
- STA $600F
9 e5 a! d$ C- j! T+ v4 l - pause_cmp:
! Z5 k/ s) a7 `& P7 `% r - LDA pause# s9 D0 @" Y" c4 V Q" W i" B: @
- CMP #$010 s7 t, ^: E2 x1 K
- BEQ button_press" h7 d8 S) ^' E- R1 m/ u" R+ e* Q" H p
- PLA
7 n& x3 j/ \; A( X& M - TAY# h+ \4 ?# _/ G& N
- PLA
0 ?% j3 f# J" M' a g; Y - TAX2 ?; M$ ]+ ^9 L# Q" X- z
- PLA
- r& U) p. m. j. A: B2 Q - RTS+ e) L$ r. s" a" I% c; Q! x! D
- . ^8 A0 q3 A3 r. ~2 k, Z% p. b/ V( W
- button_press:- _& ]9 `; e; s. e9 S2 w1 a3 k. N
- ini_Y:/ P7 N t6 F* C1 F
- LDY #$00" m7 X6 @5 \) g9 G0 C
- button_cmp:$ j' ~8 Z4 ?: ? D! n2 N
- LDA button,X
" V8 b& Y5 J5 y9 \9 ]/ X i - CMP ora_data,Y
# B) K$ n# e8 v: ]' L - BNE count_Y_cmp
3 I2 u% M* ?% F0 \. E& g- n, g - flag_cmp:
: D" S$ ~- V2 ~! F - LDA flag,X4 B) R% l: e1 C) j
- AND ora_data,Y
! C0 F6 m7 `# x9 U" B - BNE flag_and) C3 B" p. S, `! ^6 x: \
- flag_ora:
0 r# c3 {1 X9 z" B - LDA flag,X
* U! i) T3 o: f B% d4 e; i - ORA ora_data,Y
7 P$ L- g- i( B* B. F, D - STA flag,X1 R8 W- t4 A- d/ q
- BNE count_Y_cmp: D( ?' [& N6 j" _, e& p( W
- flag_and:
$ e! J, ?$ h$ `9 H( \ - LDA flag,X
& a. S, ?; j) b0 M; B+ r: ~- `+ K - AND and_data,Y
5 Y/ ? I2 f1 G" H7 M$ o - STA flag,X& ?2 l2 J1 I r. n5 u
- count_Y_cmp:
- y9 W5 K9 y( N* L0 R" b" s - INY
- ~. w2 o# O$ X - CPY #$08
9 G, J3 ~: G' h/ E( ~6 ` - BCC button_cmp
) z% `# x+ a9 L3 | -
$ k: I A" M4 X! T - data_extract:
) e, ], w( b, I9 h - PLA% ^5 v& X( @# ]% M
- TAY3 ~! |9 M( ?$ ]. ?7 i
- PLA5 m9 B: k( ?- }
- TAX; @: H$ x* Z' _3 Z7 A7 ?/ r
- PLA
) B+ F7 U/ a& p -
& _) {' c4 C# ?/ L8 b - return:
. m* Y8 f, e) U, |4 W" r* I - RTS
( K- V8 l3 E# ^) R! d5 n - * c/ ] q6 R: e P* `% E( S/ }
- 9 c0 Z3 J R# w, m" f' O. b
- INV: ;无敌
0 x: Q3 y+ T# D. L - LDA $6000,X" @* u8 w" }( e/ O. ?$ I9 T
- AND #$08
( p4 q* T, e9 L+ h% B9 E - BEQ INV_RTS
' z3 }7 f5 g: i5 f% X7 y1 R - LDA #$05# s4 A6 v% F& Q5 | A) [
- STA $04FF,X3 q$ ? q+ R. }+ Q" X
- INV_RTS:( A" R8 ?2 j! ]
- RTS
. K" i2 D# [& h3 i$ x7 @1 P: i - 2 j9 k( U/ F% [( W% V, b
- : s5 v. n1 H$ l- S) g
- LIFE: ;生命- w; Z. l, `; T7 ^0 w6 O
- LDA $6000,X3 g/ i0 w! f$ F- X$ [. O
- AND #$04
5 _9 b# o; U; ^4 W: r - BEQ LIFE_RTS: s( K% _! e* v6 m# B
- LDA #$09
3 I/ N) V6 n8 F& U - STA $6A,X
- o+ _5 a. r) X- h. f2 k/ C, N - LIFE_RTS:7 |& k) Y- ^0 S+ Q- w' c1 m0 q7 b
- RTS
- m. z9 f2 b( {4 _8 \7 c
) L+ X8 N" O1 |6 K4 P* b! o-
9 v K- W, C, v5 f" L - BLOOD: ;血量3 U/ A- V+ n4 B* r6 K
- LDA $6000,X" ?* b- ]6 d4 j
- AND #$01
# U' O( U" X1 ?& |# W5 B( O - BEQ BLOOD_RTS
) S6 d! d7 l% _7 R6 Z - LDA #$7F
4 l5 Z* L h' P* q: T& b - STA $04F1,X
1 z* z- H5 ~% ]" U% u' t1 }2 h$ r - BLOOD_RTS:
7 M: f% m4 S* Z- v4 P - RTS" x$ v p' }' t1 G5 Q+ c( d
- 8 T9 @8 C: u7 {8 ~2 ?* Z
- 6 g& P- O4 _: l6 T( u( W4 n0 ~ o
- : O3 s- ?4 J( A# _: n/ W
- " S! m/ L8 ^# b* V7 L5 s+ v( k* M. {
- .ORG $D29F8 J% g& P' V; V% {, f
- JSR $FF80
0 k: M* e! q6 H/ t( c2 } -
8 V+ ?3 G6 d9 G% m3 f - .ORG $FF80' M# i) m; B# D* z
- KILLBOSS_BY_ONE ;BOSS一击必杀% o/ _3 m" ]! R7 q; c: Y5 y
- STA $0628
1 K7 F# f1 p) S - PHA& W) C4 {+ h! Y: K/ |! t
- LDA $6000
. w, [) f9 q: A& V; q' w$ ^ - AND #$40% s C& Q2 \+ l' X
- BEQ ADDRFF8E
% y( v/ S$ U# D; ^ - PLA. Z* Q8 H u0 Q% o, f: R
- CLC ;敌方死亡状态判定
w, v7 ?3 d& ^; m; ~, H - RTS7 j+ J1 @6 Q; t& s
- ADDRFF8E:
& g }) P; ~, P' q5 f5 I - PLA4 {5 \2 a) {1 H' j; t: Q
- RTS% M* R+ y. l1 }) j( H/ p5 H. Q
- . g& y) K' m5 d
' D; E! I' N. K8 o2 d( B: \& K' F- .ORG $D1517 `, f* w+ v* m3 c+ W
- JMP $FFA0# z" S- r) e6 n- @2 j2 F# C
-
1 }5 V. Y- ~9 R/ |2 H+ D8 J2 ? - .ORG $FFA0
" h* V1 K) L9 T* d - KILL_BY_ONE: ;杂兵一击必杀
& Q d6 V7 G9 X2 p- g - STA $0621,X( G6 N- q! _3 C. r U/ ^
- LDA $6000' Z; f4 @( J3 D3 B! v4 Z
- AND #$40
3 {1 U) ~, T3 I; t - BEQ ADDRFFAD4 D& n# o2 f. [/ P5 b
- JMP $D19A ;敌方死亡程序跳转
3 F( j1 j* \0 a - ADDRFFAD:
; {0 a1 j' r; M5 z/ R g# t - JMP $D154/ o7 H5 e9 Q" F8 P; n2 _
-
% U+ R/ z" B9 F, D - ! ^/ M2 E/ t$ A, x2 Z1 a8 }
- .ORG $A7F6" [- i8 U- P9 c) d7 {
- JSR $FFB00 B; X0 i2 a- y9 d
-
9 m @/ I& c, Y/ T# P2 [ - .ORG $FFB0 ;全屏攻击# N% H+ @0 m6 D& n# |( N
- PHA
1 d N4 c4 K$ u - LDA $60005 L4 Q9 n( }' i+ d( _' w+ x
- AND #$80
6 \9 B+ }8 L, K9 g7 ~ - BNE ADDRFFBD: z' n' O7 s3 k
- PLA
, v/ A' f4 m; }# d! _- ?! F: s - LDA $0015
- `: T5 O+ p. W( N0 X1 S - SEC
0 P ]+ h* k: n3 D - RTS
5 ` E6 i( ~/ u' c - ADDRFFBD:" H" a' f+ P; D
- PLA
, |% ~7 C0 a' ~ - JMP $A8260 c% e: Q) O( Z
- ! I( y s* h- `5 S8 [8 M, ?5 K0 I
-
: T4 l1 o z$ G, } - $ }8 i, {* c( a( P. a
- .ORG $AA6A) d4 y7 {; O$ N
- JMP $FFD0
! y q) W1 h6 K -
' y# ^8 u r9 S: B7 D - .ORG $FFD0 ;敌兵动作忽略' x0 \3 T9 f5 N+ Z; B
- PHA' G; g5 T2 z) C' W: z2 P
- LDA $6000
- v+ s+ z5 ~. @# Q2 v - AND #$807 F7 A1 o" U7 x; H ?0 N
- BEQ ADDRFFDC
4 S" z) O: e* @9 ^) I0 a - PLA
3 G; a5 J b6 U: u7 i5 K1 \ - JMP $AA72
! _$ H- |- z3 s5 i" M: X - ADDRFFDC:1 A0 B- r6 i. o: S3 F% N! H
- PLA
4 ^- h; R C Q6 C+ a2 H: U - LDA $0629,X8 X- S9 ^1 ?6 o9 f. f
- JMP $AA6D
% i5 `/ |8 L1 e3 p( p - 6 L! o0 }+ L% F U% k/ X
- ;[FC][忍者神龟3代标题选关程序]' o H$ o) L5 z
- ;作者:FlameCyclone 2017.4.1/ a" e) k5 ]- N
- - C8 r8 s' {0 J. e, d& U+ D. p
) A- O" P9 e; P+ t$ T7 R5 H1 V" E- ;配置数据9 @5 L7 i ]& g# q/ H
- KEY_ADDR = $F8 ;按键地址* I9 J% W3 ]3 K8 ~
- STAGE_TEMP = $6010 ;关卡临时地址( `, W3 \* h9 A8 k
- STAGE_MAX = $0E ;最大关卡数
( r) ?% c6 q: O - TITLE_A = $20 ;标题条件A
) A2 ^; I* j2 L% E* U - TITLE_A_ON = $02 ;标题条件A有效状态判定
$ l; w: ~2 i4 j1 M - TITLE_B = $21 ;标题条件B
1 b1 G/ M0 r9 B' H' ~3 {; d - TITLE_B_ON = $03 ;标题条件B有效状态判定
: e @: p' p& P" Q% n8 S- n - PPU_END = $FF ;PPU结束符2 X8 T2 P; Q4 A: ]- ~! w5 z
- TIME_LAY = $4A ;标题显示延时地址
: `9 G" ?( Z$ J/ u- m6 v4 P - BUTTON_DEC = $42 ;关卡减少按键) w6 Q/ A5 c h |& R
- BUTTON_INC = $81 ;关卡增加按键* A# u6 ~# B. k$ B" @6 u
- NUMBER_A = $06 ;数字A距离STAGE偏移量
( z( I$ r1 ?+ @* {5 S - NUMBER_B = $08 ;数字B距离STAGE偏移量
9 n8 E" _3 `! ^8 E- `1 S - PPU_ADDR_H = $23 ;STAGE写入地址高位
/ m' W+ h' c8 A) G6 j \' S - PPU_ADDR_L = $8C ;STAGE写入地址低位2 |, ?) W w0 k4 e n( a
- CHAR_S = $A2 ;字符'S'
* O' H' {% a5 u6 W0 r) ] - CHAR_T = $A3 ;字符'T'5 F, X3 Q9 U& A% A* _/ m5 m' u
- CHAR_A = $90 ;字符'A'
1 E6 D4 Z) Y6 J2 z9 R - CHAR_G = $96 ;字符'G'
- K: c: F" S' I - CHAR_E = $94 ;字符'E': X/ w& J U9 s2 q2 @1 n8 G4 \ [
- CHAR_SPA = $00 ;字符空格
4 z2 W7 t3 Z( D% ^% d2 H - CHAR_LIN = $AE ;字符'-'5 D, w: k4 \: G" H
- CHAR_O = $9E ;字符'o'5 E8 z3 u5 Y) L7 v' X+ J
- NUM_1 = $81 ;数字'1'
# l8 N' i+ r. V! e; d) c+ L - NUM_2 = $82 ;数字'2'
z$ G6 E" _* S7 A8 J" i- u' m - NUM_3 = $83 ;数字'3'; o$ [' g3 P: [3 |! Z
- NUM_4 = $84 ;数字'4'' u9 H6 h0 T k1 e' ?1 i" D
- NUM_5 = $85 ;数字'5'
: {+ s; }. {1 W - NUM_6 = $86 ;数字'6') B2 f8 W* |# M2 f
- NUM_7 = $87 ;数字'7'
7 f: V; P( f- @5 T - NUM_8 = $88 ;数字'8'
* | {0 {# y0 C' @- @* r2 X5 J) e( k - NUM_9 = $89 ;数字'9'/ Z% s' J% @7 ]" `
- NUM_0 = $80 ;数字'0'
9 a6 {3 |5 a! g9 f: N8 i( x
+ y5 B0 N5 `& W0 z, }- .ORG $F82A. {, i7 V- U* z& ]7 W1 p' ^5 B
- JSR $E7000 N2 R' B/ D* S5 N5 U4 j$ V
-
( |* `; X# w( h9 y9 L -
# O( a. }5 E# R1 `& o. g1 N - .ORG $E700
# _- Y0 K/ L9 V - 5 @# G- R/ u, q7 e- Q" m& x
- STY $4014 ;补上覆盖的精灵写入指令, O8 t* @1 `1 l0 ^3 f, f
- PROTECT_DATA: ;数据保护' r6 P. q/ F2 P& }8 C
- PHA ;数据保护开始
6 R# K# f$ A) Z/ z - TXA g1 @3 i3 U/ U4 U6 W0 m3 h
- PHA
. o8 ^0 k. `0 v8 |4 z - TYA
* E4 i" x2 L; |5 {+ X - PHA ;数据保护结束
* p2 n; E% p! `4 H& H - LDA TITLE_A' @7 I9 e( B3 |/ x
- CMP #TITLE_A_ON ;比较是否为标题画面. t7 C, V% o% X9 g* w5 a7 N
- BNE RET- }! m* k5 L0 p+ _5 @
- LDA TITLE_B, u3 e# P7 I0 _2 j% |. Y4 j" k
- CMP #TITLE_B_ON ;比较是否为标题画面7 r1 u" m* E+ U7 G: i
- BEQ PPU_STAGE2 J K% K! y' s
- RET: ;恢复数据1 f# [# q9 p' _9 @) \. L" s" _
- PLA ;恢复数据开始
5 C" ?) `3 M5 @6 \$ g+ w - TAY- p+ [" f2 H! l4 s/ |% q
- PLA. i: s( l, _, M( h$ \5 c3 E
- TAX6 @$ p! e0 s! B- s ~+ M
- PLA ;恢复数据结束
" |5 t$ N0 l5 A- w - RTS ;返回
; I |6 R2 f" M0 x* c - PPU_STAGE: ;字符STAGE写入程序
. b) ~, M7 K9 I; h1 N - LDA #PPU_ADDR_H
9 c% H5 @$ f# [7 w P$ h$ W - STA $2006 ;设置PPU字符写入高位地址8 k3 t f0 c2 R; N ~9 j
- LDA #PPU_ADDR_L0 _$ r( p l% s4 [1 m
- STA $2006 ;设置PPU字符写入低位地址! X1 E9 G, [/ \ g' S. |) d
- LDX #$00! \1 B2 V" J' C; B$ t5 f5 s
- PPU_STAGE_WROTE: ;写入STAGE字模/ v# @: Z' J- ^5 P
- LDA STAGE_DATA,X; ?* F# \3 g, B" ?$ e9 x: f
- CMP #PPU_END ;判断是否写入结束/ @' F W- X& g0 U. O
- BEQ STAGE_CMP' H/ v2 ^% g: J5 \8 \# s+ T* z2 T. D8 a
- STA $20070 g# d. X: x- I4 E6 I9 L
- INX
( O( L& [/ P m, M - BCC PPU_STAGE_WROTE
) `9 x& A( T- G2 H' P3 L# C- R - STAGE_CMP: ;选关操作
! u4 A# H3 ~, ^7 |: d( Q- v - LDA STAGE_TEMP
" a% _3 d$ G6 X6 x9 B g - CMP #$FF ;关卡数据初始化条件判断( g1 n' O( r, {/ Z
- BNE KEY_B7 y2 {. @4 s1 l* k6 v0 e
- LDA #$00
0 S7 H7 v8 ~( J6 F5 K - STA STAGE_TEMP ;关卡数据初始化3 g% ~& B, E' s2 s/ z m \
- KEY_B: ;关卡减少
5 _* Z$ w& Y% b- y9 L0 D( @ - LDA KEY_ADDR
+ U: m9 n5 n2 r9 B) n0 R+ o - AND #BUTTON_DEC ;按键B或左减关4 z, i; _* h( F7 ]: p- G* W3 G
- BEQ KEY_A) K- h1 ]$ X% J2 D
- LDA #$FF7 b. I. c" \8 k
- STA TIME_LAY ;重设标题延时
8 o) p/ j# j: U; X7 R4 R - LDA STAGE_TEMP# w5 y3 s; Z: V9 T. w. |
- CMP #$00 ;关卡比较7 W. J1 s5 B1 V$ J* B. k
- BEQ KEY_A: e3 a% N0 l' T: N9 p9 U8 `
- DEC STAGE_TEMP ;减关
2 z4 j, w& L/ }, @" H - JSR MUSIC ;按键音效+ Y6 J6 B# I+ J/ P% h4 a
- KEY_A: ;关卡增加
. r! Q+ [5 g2 _/ i0 t! T" ~ - LDA KEY_ADDR7 J6 P% I$ y5 ~) J" q
- AND #BUTTON_INC ;按键A或右加关8 W. R0 G7 ^8 X+ I3 k( u5 ?
- BEQ PPU_NUM_WRITE
$ b9 Q, G- D& u: ~. p - LDA #$FF q5 V9 r9 @7 T9 u' I1 r1 }
- STA TIME_LAY ;重设标题延时; m, _. }! L/ B* f/ G: a% K
- LDA STAGE_TEMP3 r& \" `( ?" E3 ^5 X4 i
- CMP #STAGE_MAX ;关卡比较
' C2 S; N* J$ A- I# | - BEQ PPU_NUM_WRITE! W( b0 m: F: V: y
- INC STAGE_TEMP ;加关1 H; ^. G4 G: x @5 Z
- JSR MUSIC ;按键音效
6 w6 ^/ Z) Z1 \1 {0 P- y* u- | - PPU_NUM_WRITE: ;关卡数字写入地址6 x! ?7 @1 F9 a6 v% `! i
- LDA #PPU_ADDR_H/ p# o$ q/ k- ~5 m$ c& P
- STA $2006 ;设置PPU数字写入高位地址
$ _3 P# ?. }2 I8 f- u$ y - LDA #PPU_ADDR_L5 }4 S+ q" X/ q9 V( J, S
- CLC, I, J2 r4 T) q( x. n. {* y
- ADC #NUMBER_A
4 ^6 S2 I5 e- M; ]. d0 ? - STA $2006 ;设置PPU字符写入低位地址
! w& l7 [0 t( w; l - LDA STAGE_TEMP
. ~: y# D8 N# p& p/ K - TAX; P; n& C4 q1 @1 D$ i9 d2 k
- LDA STAGE_D1,X ;写入数字
# k; P: K. J( ?4 t - STA $20076 z9 W- @* c4 G2 g {4 h
- LDA #PPU_ADDR_H
% ^6 h: i' ^; w+ u0 `. G+ J( Q - STA $2006 ;设置PPU数字写入高位地址
n5 G. n! L* T) n& u g; I- U - LDA #PPU_ADDR_L
8 w+ G# h( p# r! f* T/ l) k$ q+ d - CLC
! \3 f+ E) L- u( f1 g# l b - ADC #NUMBER_B
' f! ]! H8 X0 [, J7 b A% q - STA $2006 ;设置PPU字符写入低位地址
# g6 Z7 a% g/ W1 {) ~3 H7 q- ?& l3 A - LDA STAGE_TEMP/ k+ B& M1 K# d
- TAX
" e; E& Y0 q% {$ X i3 u4 `/ d - LDA STAGE_D2,X ;写入数字
- ^; y* J0 j- r4 Q0 G. P' a ^6 S - STA $2007
" i: P+ T( d. [( ` p) x( W7 Q - STAHE_WRITE:" t: s2 G2 p# W4 g/ [: }4 G1 r
- LDA STAGE_TEMP
+ Q8 K8 W; w( u, G' h2 Q1 Y - STA $2D ;初始关卡写入
. r. k/ w" @9 k - PPU_RTS: ;恢复数据
& q0 x5 {/ \0 T( O8 X - PLA
) }% W6 T6 g% A6 r# {4 S' {' w - TAY8 X0 P. ?2 A; r- D
- PLA
2 R8 r9 H4 W* O2 `6 K. j+ ]; l - TAX
9 @- W# r3 h3 f) k6 I6 Q: L4 g - PLA. Q C: |2 u- C+ r5 p
- RTS
! m3 r! O4 I+ R0 Z- h& W) Q -
1 _6 j2 z D' c+ U7 O+ @/ H: ?( f - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据2 X* s0 o f* {. e: }
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
9 f% ?; l' Y$ W$ t' G* m% ]
6 k2 T* j& e- K. u9 W+ L- STAGE_D1: ;关卡数字
0 v0 G M; b# r5 `& F7 n) d- t$ x% v s - .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
) ]) k5 y! j" k% I, N% \ - ' _$ G0 n' S. T( z
- STAGE_D2: ;场景数字) m8 i \- H8 x: a# j- z, S; m, 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) j5 O1 L- w8 o9 M. `& ^: D/ F; n
- , `# t# b( E B( s# B1 j! j! h
- 6 B: w+ r; ]* @; N* S$ P
- MUSIC: ;按键音效
. @4 }/ Y) D- ~4 z2 a - LDA #$3B ;音乐号% P+ I1 {' \0 N3 F7 v$ k+ P# g
- JSR $919E ;系统音乐调用9 P3 J6 N4 z2 b; K0 u
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
# J) d9 F9 k: |( }* b2 O- N 5.生命加满: 暂停后,按下键切换;
; K9 _( |2 y9 X, ?2 [" e 6.血量锁满: 暂停后,按右键切换;
8 I; g! w3 T, e ?; h4 Q1 i# J
# P8 c- q/ e& E" m/ S% c g A
7 w- u. M* u& f5 y
8 X& S p4 T2 \- }3 p3 ]3 i 6 T, y% ]5 S& h; T$ G
& l# r# u; W' Q0 J# vFlameCyclone.ys168.com" [4 h) ?; S7 x4 O, g
www.nesbbs.com+ m! U8 n: z7 V+ j& u$ Y
6 h5 j" @: C$ I" q: g
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|