|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 * @3 y2 K: p6 Q( B9 m w
. c. o9 N( k2 l. |: U( q! o g[FC][忍者神龟3][END选关]
4 G* Q9 T4 b+ h# A" Q& j$ y k+ d, X. c
时间:2017.3.30
8 n7 e% e1 z8 ?0 ?$ \' e/ O( @作者:FlameCyclone
* T s- T9 J U& R; Q9 v' ~9 R内容:- `$ n0 g6 Y: b* H* @' e
1.关卡选择: 标题时,左或B减,右或A加;
- z$ L7 T& L a$ { 2.全屏击杀: 暂停后,按A键切换;
6 z0 B0 G8 w; \, e# R5 i4 @% v 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
0 `) B! u& ^! o( h. M% k: z( b - ora_data:8 W' {3 e6 L6 x# d U" t* ^" C
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10; E5 o3 d( p0 ^
- and_data:
* b1 n! W e% e$ } - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
3 j7 Z c# q5 t& i9 @5 s- z$ L -
+ Y9 n/ n4 ^& m/ n0 \ - button = $F8
6 |# Y( a) s$ A* i: |) w - flag = $6000
! @) z( P9 ^* o# C' _7 v - pause = $0045' D P. \6 ]) d6 }
P, E. X& O6 F; V0 Z) `- # c5 ?$ U: E0 g' d
- .ORG $F90D
6 s( Y" c/ r8 ~, e/ S$ p$ s7 X - JSR $FEC0
0 |. ^9 C u \& o- @ -
! ]; M- k$ a Y" V - .ORG $FEC0/ l# v4 B0 x7 ]+ v
- STA $54,X
: Z, ], S. a9 @ - STY $FA,X' p: Z7 Y; ]1 V; p. I
- PHA f) f3 b& b: s. m0 I& |# ?
- TXA9 w8 o6 m0 J' T2 Q
- PHA; x% _( M1 H' _8 V
- TYA- a, w4 d7 B, _6 h( z
- PHA! \+ |/ C, z/ p% C
- JSR KEY_OPERATE
( G0 R/ S) V0 K% A - JSR INV' K2 H2 {+ f9 y& D3 @7 o* e1 }
- JSR LIFE
/ H! z- G# n+ T; R8 o& J - JSR BLOOD
6 P R- j: Q: g7 ~% ? d - PLA) X1 p( P" }: [) G! t$ L
- TAY
) B2 U* A' \. ^. J* W* F) {9 W - PLA! y* e; v( w" j, E9 x, P5 {. ]
- TAX
. q& B: \! }& j6 H0 q0 D; y. ` - PLA
5 a( t& M8 s# M9 w( o - RTS- V6 x( j3 C' S5 t+ t
- KEY_OPERATE:7 v! _4 P4 C7 D9 c4 P! |1 a! b
- data_protect:
4 h7 G6 h# S6 A$ z0 N$ B6 i - PHA
1 }" _4 P2 n8 {$ t8 o4 s* f2 ?; _ - TXA5 Z* C7 [" O( \
- PHA. c0 `; h+ u L0 W
- TYA" n5 a6 D% Z0 w- m% S2 a8 ?2 p9 G
- PHA8 [8 ]: Y8 D8 K) O; M" |! ^
- ) i1 f; c- l: n: z) c
- FLAG_CMP:
1 D! f2 D# x# ~% q b# Y1 M - LDA $600F, W0 j% {5 J0 w5 M% c" r7 }
- CMP #$7F ;标志数据初始化条件判断
6 `1 d2 X5 k( H' P3 l - BEQ pause_cmp0 A- m1 A7 ?3 V# j
- LDA #$80
8 l. W0 a, s; ?! c& y! B ^( k - STA $A001 ;6000-7FFF写入启用
% m( J+ l2 a0 r, B, R. s - LDA #$00( o# o" T4 T- U' ?
- STA $6000 ;数据初始化# Y; }4 ~0 Q+ _
- STA $6001 ;数据初始化6 u3 o- I5 p4 ^
- LDA #$7F# a% A B% r. E& r! J; @1 m
- STA $600F2 g3 Q' q8 w, f9 x( M' Q$ x
- pause_cmp:9 k! r! ~* o/ Q3 {9 [
- LDA pause. `: B/ C* L9 M: g1 ?# U, |
- CMP #$01
- r: s+ ~# R2 r) M4 a; K+ ]0 `2 ~% g - BEQ button_press
: C0 `6 W% k4 ~7 T% H6 I- G6 F% x* k - PLA4 H$ T" P$ L$ c' s* A
- TAY
# K2 c+ q0 i( `; ]1 S$ i1 G - PLA
- g) E5 Y0 A4 d! o - TAX
' C) ~, c7 I8 `: O8 _, k - PLA
4 ~' ~2 W& E. l% S - RTS
7 B7 g) X2 @. I1 m0 L
! A+ ]+ A3 K& J; ^) J- button_press:- Y) ?+ p4 x/ K$ y) x
- ini_Y:( y% `: {3 U0 [+ j' n
- LDY #$00
/ C( r" q4 q$ y& ^+ m+ K% I - button_cmp:
5 s& R6 p0 u8 L8 D" U# {! A) a1 x - LDA button,X' a9 O+ W& U2 { H5 j- I8 R
- CMP ora_data,Y
D& `3 J6 }, t7 I6 t - BNE count_Y_cmp+ P8 a( ]7 x. B4 S, I: l
- flag_cmp:, B; R+ J1 v3 d, `( r
- LDA flag,X. J1 {" i: f- w% v! o- V7 l+ @
- AND ora_data,Y
, J/ h( G6 @. Y! K - BNE flag_and
% C. D x$ {: T# Z" \6 j - flag_ora:+ ]* i, \3 J1 j: y" T5 @
- LDA flag,X
8 z. ~/ K. K. f, a - ORA ora_data,Y
7 P& h# _; f- I - STA flag,X
) D: C1 t7 \: j0 p, Y - BNE count_Y_cmp
% w! E0 O- `2 v% T! a y- R - flag_and:# x2 L w+ n1 A, d1 |) t% W% U8 F" ?
- LDA flag,X
5 b6 x4 |/ T: {$ p5 T2 y - AND and_data,Y
+ l& N7 v4 z0 {# C* D6 p! ?. y: _: P' l. j - STA flag,X
9 g N% W" y+ s - count_Y_cmp:
" E0 M2 Z% K3 w. P5 G7 _) w - INY
! p$ [. j4 o0 K - CPY #$08+ n8 i* l8 E* Q" x7 @8 a
- BCC button_cmp B/ z1 o1 p) Z Q4 O! j' G
- " T# G. n4 N. ^/ I9 s" i2 D
- data_extract:
4 r9 t2 C4 w' W/ d8 P& f: M; a - PLA
- r* ~7 K6 H2 M0 z - TAY: H6 {0 g) d' A/ l, V0 A, {- r
- PLA0 C8 W( r7 @2 h h
- TAX0 O* n, ?$ o4 g6 t
- PLA
9 \$ T9 [4 y/ j, h4 u -
& _: O- ^7 i9 P6 d/ N - return:
T9 y- z, Q3 ], o- b9 g8 A - RTS, K' }6 @! T; [, T6 d1 A$ R
-
4 g* @6 B: y/ P1 r; F6 V: f" H/ O -
/ H/ g( w8 I f- z+ w - INV: ;无敌
v& b) M( a5 R - LDA $6000,X
8 e; l* w, r2 p( F8 n0 Y) x7 G - AND #$08* k7 n; u; W( M$ |
- BEQ INV_RTS% Z$ Z5 X" Q+ y1 q
- LDA #$05
+ k1 t/ O& I# m0 |, [) z3 M1 C - STA $04FF,X1 H' y9 \( W( O! y8 \
- INV_RTS:
( c/ q1 K8 A0 C2 l+ k" F - RTS
) s" T* u( ^ Z; r, l - ) m; G$ i( }1 \0 C8 g- y' j6 O
-
6 @* p- w* R* x* f - LIFE: ;生命3 s" O- k' W6 t9 A; p+ D
- LDA $6000,X
- I/ ], S/ V: W, c4 C$ u' u - AND #$049 r$ |( A1 q9 C# [$ Q2 ^* s
- BEQ LIFE_RTS. ?. i1 w: w E) N/ g# H
- LDA #$09# @% _5 U$ h/ X
- STA $6A,X
% g/ \/ F: c" W0 s$ O& I - LIFE_RTS:& U( @- O: C& { R' g/ y0 u/ O
- RTS
9 R( K' ]9 {$ ?, j' k - . v* c. _+ S' d4 R* i7 v
-
! Q" K& A/ R. X( j) D. r) }6 ^# A3 M$ M2 M - BLOOD: ;血量
3 f0 s9 f% N( w/ x; V1 e - LDA $6000,X
: x4 O% G! T. ~4 S! p' e" ~ - AND #$01& s5 p+ E( f$ P) `9 B# n) a$ L
- BEQ BLOOD_RTS
$ D% }& R( g3 J* J! e9 s - LDA #$7F
9 |: L& Z ~# C - STA $04F1,X4 x+ \& f5 M P' Q; _% ?2 P/ ?
- BLOOD_RTS:3 g; ?8 I8 F3 ~3 K
- RTS
% N) I O+ k5 j- h$ r - & }; G) x" H7 X, L$ G0 p% r% W% F
- . M. S5 [9 c( ?. }! T
- ' I6 L+ n2 o& q
-
, B0 Z) A9 e# Y" _# U7 C0 @ - .ORG $D29F2 Q. o0 f( C/ l4 i) c
- JSR $FF809 Q* \2 \6 e, ?4 V3 Y. c+ Q
-
" {0 `5 B- t0 S, ^& G; W7 m9 x - .ORG $FF80
' A3 L$ d5 I3 S# Y1 V8 {/ D - KILLBOSS_BY_ONE ;BOSS一击必杀
& g- b: \, x* Q0 H5 G - STA $06281 n% V# T- i$ x7 e B
- PHA
6 `3 \$ \0 l! U, c) G4 ^- T - LDA $6000
5 D- n% T- v4 n- [ - AND #$40
' H. A7 `/ i( b# j, b" g3 }. z - BEQ ADDRFF8E
2 L/ v5 `5 |$ ^* D E' s; T4 Z - PLA* G, d. n: E: x& }$ B! `8 ]
- CLC ;敌方死亡状态判定+ S4 n- L% C# c' d
- RTS& [) Q( I9 o) t
- ADDRFF8E:
H; G+ X. ]! l - PLA
; X9 U9 l P, h) w, L# ` - RTS
9 r' \2 O" U7 O6 b - 1 N% M' h4 w h" v# Q# h
; O1 C$ }1 L2 p- .ORG $D151
* \4 K% {0 k+ M: g - JMP $FFA0& k" p, a9 k7 P4 y' n
-
) z' t: f5 `! \% U0 r! v& c - .ORG $FFA0) d' O) X& w7 O) M" `! h7 t
- KILL_BY_ONE: ;杂兵一击必杀. W+ \( G) r5 c: e/ N
- STA $0621,X) Z; V n, ?. ]6 S) E! i
- LDA $6000$ m( O4 z: j, V# x" m
- AND #$407 m% f: w4 y1 J7 X a. A
- BEQ ADDRFFAD
/ n9 P7 w) u9 V4 u9 B - JMP $D19A ;敌方死亡程序跳转
/ b" }- R, Z C- r; C5 l - ADDRFFAD:! b+ w3 e8 Y( x) ^
- JMP $D154
' P1 O: b8 G' `0 k -
3 d4 O+ |( u. A q7 Q& M - 9 I1 _' C, a s6 A4 B$ H; W) h! I
- .ORG $A7F66 Y7 \- q- U" ]4 x6 T& v1 W
- JSR $FFB0
' {. N4 W' Y6 W4 u$ q' w -
5 V/ \; Q8 A4 F - .ORG $FFB0 ;全屏攻击
" U# N8 ^" K T# j+ ^ - PHA
s( H+ m3 C) E4 i& h- ? - LDA $6000
- v4 T% o& Z: a# x - AND #$80# s- T& D- W' y9 N
- BNE ADDRFFBD
5 A( M4 t: y/ \: W; y7 I2 j) l - PLA, |& Y+ s6 F5 H$ z1 v4 I
- LDA $00152 J' n2 K( J; Z$ j6 j" X" ?/ n5 ^
- SEC* A: N: {' d" E" M+ q% e; x
- RTS
5 B# ~2 `% u( V! [3 ^8 ]( h - ADDRFFBD:
+ ^0 T& l5 V5 ~+ ?5 Z) \ - PLA* _0 S% D5 M5 f" D1 }
- JMP $A826
& p7 p' V1 ^& Y - % j: {! M! r$ ]4 D
-
- k+ l: o1 u$ H* \: n: o3 x -
5 n! b! x6 n' B# Q6 f - .ORG $AA6A" u0 q, R! B; Y* w) z
- JMP $FFD0# U3 Q+ m9 ~! {, }# ?7 V. [- H
- . }9 X; E, T, m1 |: K
- .ORG $FFD0 ;敌兵动作忽略' y% K( w% q1 Z, l0 O$ b9 t# G+ ], {
- PHA/ I* k+ o/ \+ o. z7 Q
- LDA $60009 I8 A% g9 H$ q' Q) a: t0 c; H
- AND #$80
) H. t% y+ E7 Z' N6 } - BEQ ADDRFFDC
/ S+ Y2 D/ ~* K! C( ?5 [2 O6 F) i6 b - PLA4 D, z7 W j/ n V7 G
- JMP $AA72
9 ?9 W3 E9 A2 o+ h$ C; q - ADDRFFDC:; ~4 A3 n" V! b: |: D3 [% \) ?
- PLA) b$ p @9 v+ S2 B, I, y) ~
- LDA $0629,X5 y8 t# B, e1 S; W7 w1 k
- JMP $AA6D
- q, U; k7 C% P% p, F
- Q; O5 N9 |3 {- ;[FC][忍者神龟3代标题选关程序]
) W2 q0 ?) O) }; e# {- g - ;作者:FlameCyclone 2017.4.1) |1 b+ Q* n& f3 y2 d
d; [( |2 S P3 b: O5 z* {
1 w2 r8 v! x6 F7 e( y" q- ;配置数据2 g. F% S" }0 Y. ], N" g9 B! ^1 ^
- KEY_ADDR = $F8 ;按键地址' O+ p2 J. w" i* B- `" ~
- STAGE_TEMP = $6010 ;关卡临时地址1 p) k1 ^$ t; W2 ?
- STAGE_MAX = $0E ;最大关卡数
4 Z" r6 B' q5 J. E% b0 d - TITLE_A = $20 ;标题条件A
4 v; E) C+ I' u: H - TITLE_A_ON = $02 ;标题条件A有效状态判定
7 O5 W8 o# S; ? - TITLE_B = $21 ;标题条件B
# X) M1 W# G( p1 j: ?# y6 E+ {6 F - TITLE_B_ON = $03 ;标题条件B有效状态判定
: ^' n1 \/ e% E4 ]4 b. c' r+ S - PPU_END = $FF ;PPU结束符0 E) ]- z. F; M z2 F0 a5 Y, x! V
- TIME_LAY = $4A ;标题显示延时地址! A% r/ w& j, H
- BUTTON_DEC = $42 ;关卡减少按键7 X/ b8 K/ C" f. K' b
- BUTTON_INC = $81 ;关卡增加按键
O* e8 p: x# Z - NUMBER_A = $06 ;数字A距离STAGE偏移量
# S' u" @7 @- f: R) H4 k/ w) U - NUMBER_B = $08 ;数字B距离STAGE偏移量$ `# Z1 `( x* o: o' |% u, T
- PPU_ADDR_H = $23 ;STAGE写入地址高位
9 |+ {1 t ^3 s - PPU_ADDR_L = $8C ;STAGE写入地址低位
, s; J3 g5 ]# j# U1 w - CHAR_S = $A2 ;字符'S'
- i* _! y4 L, k; n4 v - CHAR_T = $A3 ;字符'T', t6 o h3 ^4 {- `4 s6 n
- CHAR_A = $90 ;字符'A'
: {7 j5 t$ x' [; c( N8 e% F: e1 n - CHAR_G = $96 ;字符'G'8 F# A5 E$ L- H9 J* x& T
- CHAR_E = $94 ;字符'E'
7 |5 D" C& O5 ^) }% G/ I - CHAR_SPA = $00 ;字符空格0 ~7 u$ A. W5 T
- CHAR_LIN = $AE ;字符'-'
' E8 `7 }# \# B0 g, K' v( D - CHAR_O = $9E ;字符'o'! E. }9 o4 V- I- w' G
- NUM_1 = $81 ;数字'1'
& l( G6 Z2 u2 t! j - NUM_2 = $82 ;数字'2'
. q; j* O Q u' G/ G! j ^, }1 I: X1 y - NUM_3 = $83 ;数字'3'- z$ X5 }% z P3 C! i8 }
- NUM_4 = $84 ;数字'4'. j6 k2 O0 |" m8 B4 c" k7 K
- NUM_5 = $85 ;数字'5' P- c/ g8 _* k3 T# u
- NUM_6 = $86 ;数字'6'7 R6 {$ |/ c1 w
- NUM_7 = $87 ;数字'7'* F, Z$ N+ F% k; G- T
- NUM_8 = $88 ;数字'8'8 ]% t4 a% B o- Y6 p$ S' S s9 U
- NUM_9 = $89 ;数字'9'3 v {7 @$ o, H6 B2 F
- NUM_0 = $80 ;数字'0'$ x% h' g* \( O, |
- , F8 W! G2 [; {) O% J g
- .ORG $F82A
5 w a+ H1 J& Z/ X* R' t - JSR $E700
$ J. L" L. }3 P2 |9 D/ H" _9 I -
; b2 P+ [ A8 t, f. ~. ?6 Q% a -
6 [1 b3 ]- h* n( ] - .ORG $E700
/ w7 K2 W b( j5 q9 \2 K: O - ' B$ C) X2 ?8 h3 a; }: x& g* J A
- STY $4014 ;补上覆盖的精灵写入指令
* u/ l/ X* Z% P* G" P" O) b - PROTECT_DATA: ;数据保护
$ e @$ x% }# b; p7 h7 X - PHA ;数据保护开始
4 c+ w2 N7 \' ~ - TXA& D+ t8 g `- O
- PHA
- R: t- B# v: A8 O% h - TYA9 ~$ A( `" n# X: t
- PHA ;数据保护结束
9 R, k; w- P7 b4 R - LDA TITLE_A
# f* R+ H* o( _5 ^5 f7 J2 T - CMP #TITLE_A_ON ;比较是否为标题画面! e! ?7 J4 Y% G* n+ K( \
- BNE RET
% c! W0 O% x7 `1 F1 P - LDA TITLE_B! B9 O& S, i) Y) U
- CMP #TITLE_B_ON ;比较是否为标题画面
/ g: W- A1 ^; |2 _ - BEQ PPU_STAGE; w7 o6 w3 d1 `# i
- RET: ;恢复数据
7 @' B* I7 D* h1 k) r7 z - PLA ;恢复数据开始. q, y8 \* q8 j% i( z6 U
- TAY
8 _# ~& w: j9 C1 H# M+ ? - PLA. e \. p" X& G1 X# h$ c! U' g
- TAX5 P8 h- I, z' S$ S- p
- PLA ;恢复数据结束
8 b7 k0 ?3 N, |7 m4 K - RTS ;返回
$ ~, T6 D3 ^8 r1 n; r8 E6 _ - PPU_STAGE: ;字符STAGE写入程序
( r/ }* C& P5 X3 d) k- a - LDA #PPU_ADDR_H 8 v$ R0 _- I; S# K8 Z# z) c
- STA $2006 ;设置PPU字符写入高位地址
: h% J: ~# k5 V7 F. ] - LDA #PPU_ADDR_L3 A9 w! ]$ E) L& o5 o: W
- STA $2006 ;设置PPU字符写入低位地址+ c Y: V ?, [ _/ ]
- LDX #$00
" c9 o7 I& w6 F& ^ ^* i) ] - PPU_STAGE_WROTE: ;写入STAGE字模
3 q" X6 r4 j/ S" o - LDA STAGE_DATA,X! y2 b E" [: _" _' p' F
- CMP #PPU_END ;判断是否写入结束
0 A9 y! F9 g2 {3 p+ o* v - BEQ STAGE_CMP3 E: ^; M# x* G! O
- STA $2007
3 h: ]$ A% q% l& `2 {" l - INX% T. g5 R$ f3 M( b6 B0 B7 {; n
- BCC PPU_STAGE_WROTE3 J$ u6 ~3 F# h5 x) [# t: a
- STAGE_CMP: ;选关操作
. g% o- j# Q2 {6 B9 l- u - LDA STAGE_TEMP
6 H7 v: t# T5 J9 a - CMP #$FF ;关卡数据初始化条件判断
1 J4 n- [4 Y1 Z, z$ N - BNE KEY_B
8 f4 z9 r# b" ]8 [( p+ b A2 V/ d - LDA #$00
& R: v) U P3 S% ] - STA STAGE_TEMP ;关卡数据初始化
; i) s6 f6 N% |* h- s1 g5 P6 G - KEY_B: ;关卡减少
! w. W. M2 k2 l3 k' S6 G2 m - LDA KEY_ADDR c! @/ y1 s: i) L( O
- AND #BUTTON_DEC ;按键B或左减关
9 M1 g! i/ t* h6 I% v - BEQ KEY_A$ s8 P, r, E8 W
- LDA #$FF! s& s! L) }7 d9 i& d
- STA TIME_LAY ;重设标题延时( `5 w/ a, u. O9 c3 ]
- LDA STAGE_TEMP$ u W" Y' g x% Z
- CMP #$00 ;关卡比较
" x8 `- C w) S! }- U+ {4 D - BEQ KEY_A& n) p* w* K; k5 y( G- Q8 U
- DEC STAGE_TEMP ;减关
: W' t( ~4 v) D/ `+ W3 K4 V - JSR MUSIC ;按键音效
, z$ D6 `( C% R1 e3 M - KEY_A: ;关卡增加
2 i9 y- m, K- v& m# J" Y - LDA KEY_ADDR
1 U1 i' J+ W/ H- G6 r5 { - AND #BUTTON_INC ;按键A或右加关' \1 s6 d- I& o9 t8 b. ^4 P, e$ ~
- BEQ PPU_NUM_WRITE0 k* C$ g) N; x; h' J, v
- LDA #$FF
1 y7 C7 r# Q, c# D8 T4 c - STA TIME_LAY ;重设标题延时
/ R# p, Q2 D# Z" o. ^7 I/ Q - LDA STAGE_TEMP2 k$ r8 `9 D% N
- CMP #STAGE_MAX ;关卡比较
3 M9 f! r# Z! q. `. \$ N" w6 H1 l& { - BEQ PPU_NUM_WRITE
& u, ]4 Z. z5 s - INC STAGE_TEMP ;加关1 K# D0 a/ m7 o
- JSR MUSIC ;按键音效/ h7 V( J% r: G# W* W/ F5 G
- PPU_NUM_WRITE: ;关卡数字写入地址, B/ z& O' }! G! E
- LDA #PPU_ADDR_H1 |2 D2 |3 B, W1 |9 ^! n
- STA $2006 ;设置PPU数字写入高位地址0 b! H, {! s. Y/ R& P& ~0 h
- LDA #PPU_ADDR_L' L% V- i/ ^8 b d5 w# w$ }
- CLC ?: k; _+ a5 M0 X
- ADC #NUMBER_A; q8 J; w1 I5 l# c3 E
- STA $2006 ;设置PPU字符写入低位地址- U: k& h0 I2 o) N
- LDA STAGE_TEMP
) Y% c( K+ a: y0 Y: o. s) M' s" V - TAX
1 v7 U3 V, f" ]1 U9 q4 J/ l C, U - LDA STAGE_D1,X ;写入数字
9 }+ j0 C: {0 m( e/ }3 M - STA $2007
- N" ~: C$ k d, q1 B - LDA #PPU_ADDR_H2 M- y: i) M1 T# z& y8 Q6 Z! i
- STA $2006 ;设置PPU数字写入高位地址$ p% M( M5 _- @) n$ J. {
- LDA #PPU_ADDR_L
5 V8 @! V: Z9 m- c7 ~, Q - CLC- ] I9 R3 _9 I
- ADC #NUMBER_B
0 u+ {/ Y' M' b - STA $2006 ;设置PPU字符写入低位地址; e+ ~, d% C+ q' b9 D* g
- LDA STAGE_TEMP
$ P+ u0 s/ T# c; r3 G( _ - TAX
7 i! F3 N h s) G5 i - LDA STAGE_D2,X ;写入数字
) k0 U: A. i- N - STA $2007( _1 i( H+ n0 x# ^
- STAHE_WRITE:+ G1 H I. W+ f {8 l4 [
- LDA STAGE_TEMP
! D: J+ ~* c! ]" L; C/ b - STA $2D ;初始关卡写入$ H, F" E: D$ m3 ^, W
- PPU_RTS: ;恢复数据: b7 P% y; X% {4 }# a7 `0 c$ G' J
- PLA9 ]5 M# q3 {8 P' y0 @6 Q6 r, M
- TAY
$ P8 K3 a7 S! ]3 ` - PLA
# n. C1 p2 G1 I* O. N - TAX$ C2 a0 S+ q6 a. d5 k2 r! U# n
- PLA+ d, O5 `1 p1 ~; Q! r; D* u/ K
- RTS
& y* O# g8 F7 Q" b+ C - - {1 o2 x. E9 q
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
: h) r( l0 N$ j, M. L - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
, @4 u% `% N- J4 h - ( ]$ X+ i8 r- A1 e7 x8 X; v8 r
- STAGE_D1: ;关卡数字: U- F1 |% I- p' C) d; m0 z( o
- .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* T4 g9 u0 K# t. H. x+ E
: H7 g- r: o0 {+ J- STAGE_D2: ;场景数字
1 t8 P9 f* \3 V; a% T" G - .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
6 O6 z: U% Z( [9 d& }' x9 [' V - , y+ e' U5 O/ f& T
-
0 V: ~6 w3 M; k" Q* n - MUSIC: ;按键音效
/ ^3 ^1 _+ j7 O" t- i/ V9 }* m - LDA #$3B ;音乐号
5 M/ X4 g6 U/ Y5 o; I2 B* X - JSR $919E ;系统音乐调用
( Q8 D- k8 W, X5 W- E - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
& j: [. k: E- K5 j4 t5 ? 5.生命加满: 暂停后,按下键切换;+ l" f2 h3 t3 d/ J5 z( e7 E
6.血量锁满: 暂停后,按右键切换;. A* B5 @7 O- \% v& W1 O
2 `) b7 L( E* t( P* y
/ a! H5 W8 L5 S
0 r$ O5 k: P+ p9 z9 Q
6 C! R/ c6 \: V: m
7 a# V) f6 _" s9 k. k3 bFlameCyclone.ys168.com. [9 l. S3 n7 W/ |' p
www.nesbbs.com
! c0 v5 m! e- B+ t( s1 w
Y6 K4 @" X3 ^' S# o) m/ y* S( j |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|