|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 , N3 C' u% ?/ s o% X1 W$ G
% n! v6 `4 q+ x9 S- C- B' P6 H[FC][忍者神龟3][END选关]- C9 J3 J# x% ^* P' R# w
5 [& I6 X3 U; e# r1 R
时间:2017.3.30
5 F* ]- P% e$ V, z- u2 @作者:FlameCyclone, T/ b% q8 `- o Y+ d( r
内容:# ~* K7 W4 C# }
1.关卡选择: 标题时,左或B减,右或A加;% b% _' ~* m9 l
2.全屏击杀: 暂停后,按A键切换;
% s3 ? Q/ d$ n( w4 G3 C7 { 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
- c7 p- R' v) I( y& P - ora_data:9 c8 [, M2 H# ^
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10. d, q u, w' e1 n
- and_data:4 o2 h8 y2 s8 ^( T, ~1 U" x/ S
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF' l$ G0 y% j2 E3 t5 |6 S4 d
-
0 m0 C) ?( V7 m+ f9 p# J3 n' \ - button = $F8
q- u6 }5 Q& y# x, V* w3 _ - flag = $6000
* Z3 S8 e) m& O& i- h - pause = $0045
4 _ E, F) P( @9 Y - " y5 W- V! V6 n: u" m* d0 z
, y0 V9 D) d+ I. j- .ORG $F90D ^" n3 D0 Y! {1 M6 F
- JSR $FEC0
9 p( V* p; ?% E$ {1 X: M - : }1 P/ w: K6 P: P
- .ORG $FEC0
3 K% j# y, t: b - STA $54,X
$ }1 Z3 ^* x( g! C5 A5 c- K - STY $FA,X
3 n9 c4 n0 f7 G1 A% w - PHA
, O6 w" p6 B( v' w0 s& i - TXA
' q2 E. N) N* A% A/ p - PHA
4 g+ K) z& u# F( l - TYA
Z2 p" U+ l9 V. S' a7 L/ A - PHA
3 H! n1 B/ C* U" y3 u" v; S - JSR KEY_OPERATE
* Q" |! s* Q k c# e2 h/ M - JSR INV7 ^$ `- J* }' r0 p, Y- }7 I
- JSR LIFE
( j1 o5 O! z1 Q8 r" [0 D5 A - JSR BLOOD
' o" X" ]! `! H' w) r2 ~4 r; l6 Q; p - PLA3 G- y% G" ?( W$ ?2 r
- TAY( q$ y- O+ j2 A; Q) |
- PLA
1 r( Q# P* U' ]# w7 Y" X( o* D2 S5 I7 r - TAX2 A; p, o, U G0 l6 Z
- PLA; L8 b$ u* L' ]4 D3 V" q8 W
- RTS3 O, {7 f# T5 i0 Z+ ]5 c
- KEY_OPERATE:
9 c3 ^/ n9 R4 t9 v; w - data_protect:
7 y P* c* ?% @ - PHA
: _5 d0 |! |9 O8 X- \! i - TXA6 Z7 R: N E$ h0 R7 F4 P
- PHA8 d- n2 t* L& k v; j' ]
- TYA
6 Q5 q" c% N3 i# U. f9 } - PHA
6 I) ~8 z4 |( T$ k6 A
% d) E4 ~ d' X+ d; f- FLAG_CMP:! s- I, H4 s# G9 ]# e( O) Z: b9 _
- LDA $600F
0 Z6 k I9 R- l7 J; ~7 p) p' W$ E - CMP #$7F ;标志数据初始化条件判断3 D5 a$ z( c* [' U1 A, R) h
- BEQ pause_cmp
$ c3 d) ~! \6 Y) B# i - LDA #$80 T# V$ d; K% x" j
- STA $A001 ;6000-7FFF写入启用
. B8 r I* u9 m - LDA #$00+ }& }9 D7 f+ v. a, @/ Y2 S0 V
- STA $6000 ;数据初始化
+ B3 U. P7 h- C - STA $6001 ;数据初始化
; h# Z; I6 ~7 [) A- S6 N! [ - LDA #$7F8 @; |9 ?1 G3 j- Z
- STA $600F
6 e+ U; F% F+ I$ i8 g: `8 m - pause_cmp:
) }- p) f9 |7 H$ ~( m$ t - LDA pause
( k" j- i& f. T - CMP #$01
1 Q* s. q [! ^' y- z Z' Y6 x - BEQ button_press
) C8 w6 t) v* P - PLA: ^7 ?: N4 i& |" ]9 o. [
- TAY
; I9 {- y0 p/ R$ i4 ^4 i - PLA. P) G b" A. r% j/ O: G! H
- TAX1 y5 f. U6 D, ~
- PLA) }/ p8 \! M1 r4 E- w
- RTS
, \3 j$ g* ^ G. R7 P" c" h* W8 i - & i! ]# `& V( Y9 V
- button_press:
5 \" d* ~3 ? l, P9 V - ini_Y:% y3 N$ B9 k! b" c0 |. x f
- LDY #$000 n$ M- u- F5 J' K
- button_cmp:
+ s/ G2 R! Q! t. |' u+ d' C& w - LDA button,X
4 Q2 N. Y! d+ F$ `' P1 O - CMP ora_data,Y
- i2 }" r/ g0 W& m/ _ - BNE count_Y_cmp6 `1 X! ~5 A0 L3 U# A4 Z) ^
- flag_cmp:
1 C; O. w4 b+ u6 ~ - LDA flag,X7 r; J. S1 ~6 P. i- P8 F4 |
- AND ora_data,Y$ l5 T1 F% O7 F+ e: R1 }
- BNE flag_and" {6 c& ]1 d& M1 Z# s
- flag_ora:
8 N c2 t8 N& [7 j u& F - LDA flag,X
: y! i% e! a0 p; G( ~ - ORA ora_data,Y
3 A! l0 f3 P9 J' f - STA flag,X5 E, h5 b4 x# f4 U' [+ V& Y( \6 W
- BNE count_Y_cmp4 K, L0 i" d- Q1 h$ U( y7 N% A, ~
- flag_and:
7 d$ N" d1 c4 C0 ] - LDA flag,X( I* E1 b+ I" G7 ~& e
- AND and_data,Y7 u$ l+ B6 k/ J) ]6 A* P
- STA flag,X5 R& a" X* p8 H% i
- count_Y_cmp:- U: f! u7 N2 a- q4 ]
- INY
" A: O6 }, ^5 t2 o - CPY #$08( D! P9 m5 C; ^% N, y
- BCC button_cmp6 Y1 d" R/ P2 @. Y; V. Y4 b! @
-
, }4 `+ @1 A1 C7 \ - data_extract:
. @1 _& M, L. t( D - PLA
" ?- _: G. U$ M* \, f* A - TAY
% I1 @1 I# m; [ - PLA
D% [3 H+ L4 p. R' {% w4 k - TAX- ?1 g4 R6 a% w: U" y; T% v
- PLA- A+ E; y9 }, y8 ^6 r
-
# w' l: v0 v' \* A0 R- e3 O - return:
' p9 X) ]7 l' o; m N - RTS2 o% v8 J$ q4 o3 E. k" q
- * s6 E7 R& H& O
- - \3 L3 U/ H+ x" F9 F/ j" f
- INV: ;无敌* y+ U( e: C7 \, ~1 G! p
- LDA $6000,X' Z# @, R j, \; U2 @% B
- AND #$089 c* m6 |1 `5 J3 q0 \+ z
- BEQ INV_RTS0 [! t9 f' |4 @9 f
- LDA #$05
/ x& n( a8 f7 `) r q3 e2 N2 H - STA $04FF,X! T7 e8 K. m: d
- INV_RTS:
) J& L% a: R1 H3 a4 ^1 d m - RTS
( p3 v& @! l7 B: t, w - & B1 E) I: _4 u$ h% S# u
- 0 e8 I6 L1 x! U6 B _% B+ j
- LIFE: ;生命
9 n2 j* s$ Q0 @8 V - LDA $6000,X0 z! g8 Q, N5 u5 b% q% m% b& P4 {
- AND #$049 g* q& k' G# a
- BEQ LIFE_RTS
! W( w& ]- j& d" w - LDA #$097 q6 d3 y4 r" K3 h9 i
- STA $6A,X
2 I0 i- q# m% h* o& ~/ p0 u; d - LIFE_RTS:
8 t8 J" p; `0 N) j( m0 d+ z - RTS
, V+ c% Q0 V. [3 E+ F( B - # q) e2 @" I% ?/ z5 x) j$ a* o% q
-
& o, O. ~# `$ n8 v - BLOOD: ;血量
) v b6 m) o# t7 w$ }; L) f: Z0 Z - LDA $6000,X6 I+ ]$ E/ z4 ^
- AND #$017 w$ n+ c9 a( Y4 T9 A1 W
- BEQ BLOOD_RTS
, h* M( n. {0 d% u3 } - LDA #$7F+ Z5 U; J! g" E- ~
- STA $04F1,X6 D6 s! K, d/ E: W" l) F$ g. `
- BLOOD_RTS:1 u1 Z* B' p0 s" N/ K* E
- RTS! L0 i* Z' z) ^/ b- J8 K
-
4 \ R, N, H8 D$ }1 x9 S3 O - " j* D& [/ \! ^9 n- j; ]: `. l
-
" ^. W2 u3 f F$ Y( B& N% D -
$ r$ e1 R5 y+ U* X9 m+ @3 X - .ORG $D29F
) v* a$ q" c0 H! ?. {0 t - JSR $FF80
( F& a$ w, s, t4 C - 9 O$ L }! a6 j4 S
- .ORG $FF80
$ M4 y, {, O" {) C u" o; X - KILLBOSS_BY_ONE ;BOSS一击必杀' X; H5 K# v- g. J$ V
- STA $0628
/ b) W: S( M* D$ }- i - PHA
* F/ H C' m" _ - LDA $6000
% B$ {! t) ^' l" V+ @. R4 d - AND #$40& i9 f# R a8 f, o( d/ h" j. U
- BEQ ADDRFF8E
* |: @: R! S/ X, A s- `- [2 a6 M - PLA3 {! e. H; s+ k7 M- a O2 G$ t7 O
- CLC ;敌方死亡状态判定( G& K& J$ O; \7 Q. M% z
- RTS
- P' b( S+ ?: o' o - ADDRFF8E:
, G% u* u# O( d { M0 R - PLA7 d! B6 m! v% `* r
- RTS2 q9 ?" L3 U- @8 q6 Y. m4 W$ q0 c0 P
# v/ }- X* X) [: b, K
1 U8 |/ ]/ J ~, |; p- .ORG $D1515 J. V J& G( J6 X5 E5 Y# a" U
- JMP $FFA0
* E3 X: f/ ?2 e2 ~ - 0 t7 c& J' z# B J. a9 M2 f
- .ORG $FFA0
5 _7 K: W7 |( M8 q - KILL_BY_ONE: ;杂兵一击必杀. x) h+ b4 c3 m( k+ K
- STA $0621,X
5 i9 X& @& [* v' q' G0 \; R0 X1 u - LDA $6000
/ T1 k8 R4 L1 z1 T9 i - AND #$406 |7 j$ O5 K" {) x, G
- BEQ ADDRFFAD8 A$ F+ {$ H4 D% X: \
- JMP $D19A ;敌方死亡程序跳转
5 K" M$ K, c; a3 x' D0 v2 m - ADDRFFAD:
2 z+ T/ D. Y/ _ - JMP $D154
9 b0 c6 [6 b* J7 H/ J ~& h, c - " z5 ~$ h9 M j. S# O$ ]$ y6 C
- 6 g! y7 l% p; H" I) q8 s5 x9 p4 N
- .ORG $A7F6
3 q; Y1 H6 p( v0 E* G - JSR $FFB0: t* x$ F+ i" t4 X' |4 ^8 P) l
-
/ g1 V2 y7 W9 R4 Z" n) }4 o, c8 | - .ORG $FFB0 ;全屏攻击
, u M* Q; i( R' W - PHA
% J5 b0 i6 v3 u# v6 [/ h" P) ^ - LDA $6000# o v) X$ T' [; C' u4 I Q
- AND #$80
% a0 G8 ]' i6 P7 D - BNE ADDRFFBD
0 P4 F9 P7 Q; C9 @2 F N# m+ V - PLA
, y* m X5 y9 | - LDA $0015
5 Q* j* W' Y& z# A; L - SEC
* \8 ]7 T; N7 z' Q - RTS
' h1 s2 ^+ e+ M* i - ADDRFFBD:1 n$ Q2 H) h4 F, O
- PLA8 n0 H( w& b3 p8 k; [; o
- JMP $A826
$ W5 f( h1 o% D' ] -
- P1 l" _5 I( i -
% s$ F! x7 h/ D% O - 5 Z1 [' R0 ] H$ z4 e
- .ORG $AA6A: X4 x2 D7 ]) e6 I" r$ u
- JMP $FFD03 c. S. S' Z8 \* y" f1 Z
-
7 E, {- X- M" A# r1 Q - .ORG $FFD0 ;敌兵动作忽略
6 R9 w0 a; W2 U. m - PHA
" q+ O e0 K( I$ S; E - LDA $6000
8 e0 d. O8 b$ F1 _ - AND #$803 P2 b+ [+ ?* l) G* X0 R- B- o
- BEQ ADDRFFDC$ e- @5 V/ N6 W8 a2 E& g9 a; K* t
- PLA" I6 ]& f3 I; h. D: X$ Y
- JMP $AA72
- \- `1 Z& g) @9 ]' M( k8 ~ - ADDRFFDC:
5 I+ \' |, n( w3 Y - PLA1 M0 W$ f; |+ P8 E7 d- K: \
- LDA $0629,X
( L* K$ p$ k m [- ]0 {! [ - JMP $AA6D" T, h- m& f/ Q& P. n' k0 T
- 0 ^, T+ h+ {. \0 Z9 Q" _6 \
- ;[FC][忍者神龟3代标题选关程序]0 j# n* C0 f- e
- ;作者:FlameCyclone 2017.4.1
: b1 o7 m, E7 d - . z3 n7 r2 u, u' U4 `
0 [9 d8 C/ R4 U7 k- ;配置数据1 L' a2 H+ q3 M. L; L9 T* ~
- KEY_ADDR = $F8 ;按键地址
/ L. y) l* e) |5 ?$ h3 @ - STAGE_TEMP = $6010 ;关卡临时地址- g' m/ S6 U( e6 O4 j
- STAGE_MAX = $0E ;最大关卡数
+ k9 T; O4 w( X4 W3 B% ~ - TITLE_A = $20 ;标题条件A% _; c( q% s; n2 A. k, L
- TITLE_A_ON = $02 ;标题条件A有效状态判定 o! m" `1 I4 @! |5 ~; d+ V
- TITLE_B = $21 ;标题条件B
8 Y; T9 a0 y4 j3 a l* Y: B3 y- s - TITLE_B_ON = $03 ;标题条件B有效状态判定
3 k0 R0 J7 ?, V' g/ N, `' H, a - PPU_END = $FF ;PPU结束符
6 h- p! [% h1 L2 @+ [) L4 _ - TIME_LAY = $4A ;标题显示延时地址
5 G; }. f# j- o - BUTTON_DEC = $42 ;关卡减少按键
2 k: j2 Z4 V: A - BUTTON_INC = $81 ;关卡增加按键
# u) O5 u$ N. S( S& j4 @) D - NUMBER_A = $06 ;数字A距离STAGE偏移量
! ~5 _0 L5 Z0 ?/ f$ x - NUMBER_B = $08 ;数字B距离STAGE偏移量3 K* K$ `3 a" \* z: o% }9 S( `
- PPU_ADDR_H = $23 ;STAGE写入地址高位8 Z8 W/ u6 I* D/ b% s$ T. }) D
- PPU_ADDR_L = $8C ;STAGE写入地址低位7 {5 X7 ]$ `9 {. l, o$ w
- CHAR_S = $A2 ;字符'S'
* ~) X- A' U: d1 ~* ?6 { - CHAR_T = $A3 ;字符'T'0 u W3 p1 ?9 C: n( m
- CHAR_A = $90 ;字符'A'
' C- d% x/ g" M+ G6 E - CHAR_G = $96 ;字符'G'
4 q% }, A$ C! G+ d6 r# S# ] - CHAR_E = $94 ;字符'E'
3 m% e( L, V2 z' } - CHAR_SPA = $00 ;字符空格
; O/ Z0 N; R+ m% g! } - CHAR_LIN = $AE ;字符'-'+ F) x4 D" u) F6 U$ q9 N
- CHAR_O = $9E ;字符'o', {: P( ^2 q8 i( D0 y. Z6 r9 ^
- NUM_1 = $81 ;数字'1') J5 N& _& L4 n# N
- NUM_2 = $82 ;数字'2'( h" x& u: n: B: F, m" q
- NUM_3 = $83 ;数字'3' G% C' ], M1 E, g/ t
- NUM_4 = $84 ;数字'4'
$ S' x9 D7 ?+ U$ P7 Z0 a0 V - NUM_5 = $85 ;数字'5', m8 B# P0 X. z$ F" I0 N2 l* f
- NUM_6 = $86 ;数字'6'
; z2 X1 Y7 n) ~/ @" w* \ - NUM_7 = $87 ;数字'7'/ i+ ~7 z& n) }3 B- T' c
- NUM_8 = $88 ;数字'8'6 J8 G) a/ U" z: u
- NUM_9 = $89 ;数字'9'. S% W' n |- d" o0 B
- NUM_0 = $80 ;数字'0'
+ h0 m/ R* x! \: W7 P$ e" G - ( G8 h6 K" K& d4 | e
- .ORG $F82A! F# p2 j9 g. }0 q9 Q' [
- JSR $E700/ d( m0 c6 D, |0 ?5 M
-
1 c! r, Y- Y. i; [0 } - 0 Z( c/ @. R. M2 ^5 V! d j
- .ORG $E700
9 V2 i6 N( T' S/ w0 G -
# k; v& i. O7 S0 {( x% ]( r - STY $4014 ;补上覆盖的精灵写入指令
- x) ?+ T0 p6 x* {) {8 Y - PROTECT_DATA: ;数据保护
% ?" a4 A0 N2 A9 N, R0 ^/ M - PHA ;数据保护开始
% K$ F1 R' @" O% L - TXA
1 E b$ I/ m! t( w; E' k2 P - PHA* F1 B& f& O' s# c
- TYA) U/ v9 U' T8 w- N
- PHA ;数据保护结束1 P0 h# T& c! G8 R
- LDA TITLE_A
- e/ z1 H3 l! E: ~ - CMP #TITLE_A_ON ;比较是否为标题画面
2 X* t, ?. Q/ o& d. G - BNE RET
# X& F: y- h" Q; w7 `9 {, s/ R% p2 | - LDA TITLE_B# `6 w7 M' u: T3 Z( M$ L
- CMP #TITLE_B_ON ;比较是否为标题画面' P6 d, ^$ E; ]* t6 ~" q3 u0 ^1 p
- BEQ PPU_STAGE
. a- h: _/ |9 l/ b - RET: ;恢复数据7 b' ^5 f# _ v' m
- PLA ;恢复数据开始4 T, G3 B% l4 W" T
- TAY& V* F0 A- I1 D# Z& c
- PLA) E5 j: G, E% _
- TAX5 F$ K4 ?2 ?1 |8 \" W; U
- PLA ;恢复数据结束
9 t. m6 `2 R# v. F/ {8 A - RTS ;返回
. |/ D+ T: ]2 b" T( ~6 Q - PPU_STAGE: ;字符STAGE写入程序: \! M4 U: N4 @7 t' U' c
- LDA #PPU_ADDR_H
8 S& ~. ^8 V+ c8 |. ]/ q+ R - STA $2006 ;设置PPU字符写入高位地址: u/ R; `8 m( V* P: }
- LDA #PPU_ADDR_L+ ?6 U' U+ l; Q, ^7 b5 U
- STA $2006 ;设置PPU字符写入低位地址& x/ ^( W* O* X6 H
- LDX #$00
& O% J8 K6 E7 R# F4 } C6 l - PPU_STAGE_WROTE: ;写入STAGE字模
; I6 b2 R% @1 X' n, R7 v - LDA STAGE_DATA,X; J# H/ H. Q0 M; P7 W
- CMP #PPU_END ;判断是否写入结束- V. Z c" x" K6 d+ Y4 E6 S
- BEQ STAGE_CMP
+ s" ]5 @ A( Z' e" V - STA $2007! e4 ^8 k! t; x0 T9 {- ^. A; J
- INX7 v3 g" `" v/ h7 Y$ G, L
- BCC PPU_STAGE_WROTE ]$ I; V- w# r9 \7 f, P
- STAGE_CMP: ;选关操作) {; M/ i. F9 a
- LDA STAGE_TEMP
/ p6 B6 ^1 @, y4 N/ j$ H - CMP #$FF ;关卡数据初始化条件判断$ H# J6 n, m- k4 P: g6 A. N
- BNE KEY_B
: |% C1 n x9 S* P) O1 u- {2 R7 a - LDA #$004 w- F- N2 X( U( T3 v+ [
- STA STAGE_TEMP ;关卡数据初始化! C4 L# B$ e q, X( v" n
- KEY_B: ;关卡减少
3 X( r( q+ k7 L" |! _ - LDA KEY_ADDR# @, I3 t: v% a. U% j
- AND #BUTTON_DEC ;按键B或左减关
& t; |$ D. y2 z( @ - BEQ KEY_A
/ i! r% S* [8 B5 I - LDA #$FF
# _( o# f1 W' b5 U6 w, G - STA TIME_LAY ;重设标题延时
" j4 l4 w2 c0 Y2 W% H$ \ - LDA STAGE_TEMP
; o& a+ ~7 U8 r M/ z" [ - CMP #$00 ;关卡比较
$ Q" j9 a" @/ {( f - BEQ KEY_A& N. t% g+ X, u+ S. _3 g) R6 K l
- DEC STAGE_TEMP ;减关- g* G! @) L1 j$ C+ V5 u% c
- JSR MUSIC ;按键音效
. i# K6 H! N) J2 D- Y: f - KEY_A: ;关卡增加8 e9 X9 o& ~3 L
- LDA KEY_ADDR
" l' f4 O1 n# J% A _ h4 Q. ] - AND #BUTTON_INC ;按键A或右加关: ? \- h, n- R) O3 r
- BEQ PPU_NUM_WRITE
1 p4 I; l# N5 J4 R" t0 b4 n - LDA #$FF8 g$ W# c: ^; R& e& F
- STA TIME_LAY ;重设标题延时1 F+ n0 w2 z. l, ~9 Z) i% i& E
- LDA STAGE_TEMP0 T' N, N; i: {+ ~7 n7 d7 f6 L$ {
- CMP #STAGE_MAX ;关卡比较! K6 f; Q0 O" A, ^. q" n
- BEQ PPU_NUM_WRITE! |, x3 ^/ e! a( H
- INC STAGE_TEMP ;加关+ F& F7 @; V/ u) T! m( C$ r0 P
- JSR MUSIC ;按键音效
& V& d" ]; n, ^5 ? - PPU_NUM_WRITE: ;关卡数字写入地址/ g$ _5 ^5 ]9 H! z7 d
- LDA #PPU_ADDR_H
- z! ^; u( o& c- f3 L - STA $2006 ;设置PPU数字写入高位地址2 s- T) @/ Y1 ]# L( {+ \
- LDA #PPU_ADDR_L
! S; \/ L, Q' b! L# f$ u - CLC
9 t8 I2 G! S8 G' _* M9 [ - ADC #NUMBER_A& G$ H# J' _3 L; \9 g/ p# H
- STA $2006 ;设置PPU字符写入低位地址
, @% I: f, h! t, W2 U! a, T - LDA STAGE_TEMP, {9 |8 {1 H* H }+ x
- TAX
3 v3 _% ~" B0 _ - LDA STAGE_D1,X ;写入数字6 `+ `1 H. N5 ~, ^- T- Y8 l8 x
- STA $2007$ k* |6 M1 V1 J0 H0 u: r
- LDA #PPU_ADDR_H
& v9 e! G; |0 H: C$ O* | - STA $2006 ;设置PPU数字写入高位地址
, h5 d$ |2 P; b! ` - LDA #PPU_ADDR_L+ D. \9 Z3 q: [* `( {" C/ }$ u5 _
- CLC2 p5 V# h" G6 t1 l5 G" U4 d7 u
- ADC #NUMBER_B
: O7 h, e/ F/ ]" o - STA $2006 ;设置PPU字符写入低位地址
: b- B+ ^9 |; j3 B - LDA STAGE_TEMP$ P# ?4 u0 T. h w
- TAX5 d! g7 J/ n* Z2 X$ Z4 K5 w
- LDA STAGE_D2,X ;写入数字
6 j8 F# a3 R: r* I8 W+ l! _ - STA $2007
* ]" M/ J4 n2 i/ I! t - STAHE_WRITE:* S% o$ C1 H; K! n; R
- LDA STAGE_TEMP0 ]. }7 \/ G& E6 n# [! K
- STA $2D ;初始关卡写入
: Y5 {0 X( s) }6 r/ I" G; H - PPU_RTS: ;恢复数据3 c- I3 ^& |3 F. T
- PLA
0 Z$ X! K* |8 i5 x% P) E* x+ k! k - TAY) L% S/ S2 Q( Y9 F/ H
- PLA
" v' W5 Y6 z+ C" e2 D* H - TAX
3 N: d' v* ^9 R) h+ A - PLA. O3 t4 g* b; N
- RTS
" G6 ^6 i6 _4 m! ~6 } - / C1 c# }5 }1 t- |
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据; Q! g# P' m+ f' j
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
% Q/ o& k) [3 q# j
# ?6 E% O7 G ?" V- STAGE_D1: ;关卡数字
( Q8 h2 T7 S: S! g - .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! i, ~ J# m. S( |9 D% d6 F3 ~8 v
8 w, F4 g! E0 y2 {& G- STAGE_D2: ;场景数字
& }' e* {: T! Z% y+ Z - .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- V3 _& d; ?4 H# t( d# n/ T
- # y6 L( H8 L: H* m4 j
-
( _$ _3 v0 c- K5 N E' p, e6 { - MUSIC: ;按键音效* ?/ Q) C) \& Q. X
- LDA #$3B ;音乐号
- ?* j: n- W1 P& m - JSR $919E ;系统音乐调用
6 f1 i4 A0 h3 r- C: x) S4 J1 J - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;1 S f! R7 u( h/ \1 u" `. S$ y
5.生命加满: 暂停后,按下键切换;
2 s3 W/ ^$ T1 p0 o2 Y 6.血量锁满: 暂停后,按右键切换;
" A( C/ N0 X2 _3 T2 [8 i
; {; p. F; B7 ]* {% A8 L! S, T
, n0 T% p6 E, x! ^/ U$ q" X ! q6 S* X+ U9 w- d
0 K7 C1 ?7 n! a, ?2 x7 `" n3 k
& ?3 N9 }/ C w. r3 d% KFlameCyclone.ys168.com9 s) o c: ^ K: c' K/ l r4 g: m/ |
www.nesbbs.com
+ l/ y: k$ `/ B( c% a0 F) ?
0 A) t$ b: `5 R& W4 l |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|