|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 * ]) C; r& _' Q
0 G) l$ h' B' c1 r( Z8 d2 i[FC][忍者神龟3][END选关]
' \/ E5 R: u- I# Y: R" q, E9 ~% L7 @ t; |) V
时间:2017.3.30: m2 {$ ]1 S! `! k/ g) z
作者:FlameCyclone- l- l1 u$ j# f0 e
内容:
4 G0 D! p7 q$ t# w: L 1.关卡选择: 标题时,左或B减,右或A加;
* M0 g! i1 S2 @7 [' ?/ D 2.全屏击杀: 暂停后,按A键切换;' D @, e8 z5 l& t0 X
3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
5 t! R3 C6 i. q# C - ora_data:
$ _5 R! D% y; d5 j; {5 @1 J - .BYTE $08,$04,$02,$01,$80,$40,$20,$10: e3 Y$ F: Z% w3 G& H! z: Y. _! H
- and_data:$ u& m' v8 R: _4 s8 T; T
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
* X V2 e" C) [! _% W# [# z; ]# m: h$ ? -
2 W, D0 z' i1 D) i: O9 S* { - button = $F8+ x/ V5 }: [6 f5 P% i; P. x; r
- flag = $6000# g$ m& _7 t V6 n! w5 p& n1 Y8 w
- pause = $0045
, ^: t9 l% h2 T3 d7 N2 s: K - , I0 B- @0 A# A8 H4 v% V, F: d
% Y: E% k# N$ T. J2 M- .ORG $F90D
1 t$ z r6 _" u& x' v9 M8 e - JSR $FEC0
7 V" I9 ?& H4 m) z% [6 |: K - , J. `9 u; P/ X9 i
- .ORG $FEC01 m; @' x9 Z$ D4 ~4 k: G
- STA $54,X0 _5 g9 D7 x( w9 k- T/ x
- STY $FA,X0 D* t' v. q7 Y ]1 |6 n6 X* T
- PHA# N1 {; N U \
- TXA* ?4 `* b$ k. C( B+ k9 h A1 y
- PHA8 E- \* k5 n4 [# w. W- w( j
- TYA9 E8 O0 d, E2 U/ u
- PHA
! {% l$ k" A. B2 | - JSR KEY_OPERATE/ P m. O$ L5 D5 v' u2 o
- JSR INV
Z q L' N% D( q - JSR LIFE3 Q# y+ i- t; E) @
- JSR BLOOD
" X+ u8 b+ Z, }% ~ - PLA, j9 r9 O- O% g4 ?7 E9 u7 e. s% q
- TAY* U: ~8 @' F2 H4 X: r
- PLA
- n% M# ] X8 h - TAX. O+ n _4 I0 J' h5 P; P( P `
- PLA5 `, E2 _/ x) K9 N
- RTS H0 K/ m; R& p7 C: S( u
- KEY_OPERATE:
! x, _/ S t- @8 ?- x( D& Q- O - data_protect:) j4 O0 j) H& B4 y- S3 [
- PHA$ S; w# |/ n+ O- _2 U. ` V' U
- TXA
) o4 J! f; T) I- I4 l1 {. y; i$ i - PHA# P* Z" M4 _* A) d1 N0 v$ ]; ?9 l
- TYA
! b* R q+ ~1 P7 d - PHA) K4 v F6 R( ^2 e2 P; F
8 S0 i$ U9 R* l& p6 W4 u- FLAG_CMP:+ q! X$ c+ x' ~: V
- LDA $600F3 B9 N; o4 G: O+ W# @% \
- CMP #$7F ;标志数据初始化条件判断
5 Y' i5 S5 v, F: t - BEQ pause_cmp
0 Y; y# R. L$ i0 U, M H/ t3 n - LDA #$808 h+ |5 e6 @+ ~& s/ w
- STA $A001 ;6000-7FFF写入启用( S7 l4 n" k5 w# l, U0 C0 t
- LDA #$00
$ X" v, x( Q0 p. M$ t. J - STA $6000 ;数据初始化
" M' Q7 }" {* x0 Y q, N - STA $6001 ;数据初始化: Z: ]! u( Y: U+ L" D- n( S
- LDA #$7F8 Q9 R6 ]8 f- t( D6 y. o2 A- N; I3 J
- STA $600F
3 k$ X7 b7 j4 t& a0 M - pause_cmp:+ t; J7 j$ i# v$ e' {& C$ W* b
- LDA pause
" }/ O4 w2 j) S G1 B2 u5 s - CMP #$01/ }2 l$ N/ Y0 e0 \( M
- BEQ button_press% P4 r! [: k- c5 l; h
- PLA
+ u0 z& [0 I" K - TAY
- P: ^3 U' Y0 `( [$ A4 R - PLA8 X: N+ Q. @( W$ D& r
- TAX
4 r# k8 e% {3 }( g" x6 o8 d2 J - PLA
o% u$ L; L5 q( y) _ - RTS7 f' A+ s' g4 K1 g( l
- ) w, Z% t. [* ?1 D6 F* H8 y* C7 z- V
- button_press:
4 Z" N# A4 K) }4 |' s - ini_Y:
9 q7 h0 _, a O" Q3 Z1 G$ t - LDY #$00
2 H) W( H) Y( t7 w4 C/ `" V, J - button_cmp:
$ X! N+ J2 j( ~, p9 } - LDA button,X
& L3 Z5 n2 p7 ]8 D! \. q- o5 @. ` - CMP ora_data,Y
, A3 f; @6 T8 i( g" V3 [2 Q) ~5 s - BNE count_Y_cmp3 x, [+ k. L ~) D/ r, T4 |8 U
- flag_cmp:
; } A) V& E/ a2 d - LDA flag,X# K# q, K4 {- \. P1 n
- AND ora_data,Y+ x& B9 N+ N3 w' ]" A9 l& }9 T) P/ I
- BNE flag_and
: s! z% S( N5 @2 v - flag_ora:: p3 K2 {. m. v8 C4 O4 V
- LDA flag,X9 q, ]3 ]% |) b% Q% W' Z" F3 k
- ORA ora_data,Y. ^5 V* O/ G4 @% v$ s
- STA flag,X
2 w Y9 u/ a) p$ N - BNE count_Y_cmp
. k& _+ W0 y0 E - flag_and:6 `5 L/ }3 Q& f+ l C3 Q
- LDA flag,X
8 h) W; Q% ]* M% b# G* a2 l9 L/ q - AND and_data,Y
" n- |! e9 A6 Z( [0 P - STA flag,X
. t8 v7 Z' K3 \% y - count_Y_cmp:- {. v3 u- Q$ x0 h" U" R- y* _
- INY
V/ { L% {! q+ I% C) m6 S - CPY #$08/ W, i* r8 J3 _, t) U6 y% [; Y5 R
- BCC button_cmp
( X3 V4 @+ y/ U5 I* P. \ -
5 s4 l! t O. ?! [5 \0 |1 k - data_extract:
) }& Z; a5 ?$ O2 r6 i) g- r2 v5 i& z - PLA0 l0 @; q* k& m2 f, z t
- TAY
5 a+ {+ H/ A+ b% n- m& b: P! S8 \ - PLA8 u) T5 a8 Z; V5 C, [# x7 Q$ K6 z
- TAX
8 i z9 ~0 P% M - PLA& _/ H# [; y* L7 j# s( `" g9 h
-
6 i3 I7 I- T. t) \8 h9 r - return:
3 o7 p1 j3 J- f6 a6 s" N) G - RTS5 w2 E- H9 C8 U" I5 ~8 N. Y+ ^2 v
-
" B) h {) [6 Y+ r l T -
; J* b: p3 p: E; u/ a - INV: ;无敌% \; t: G8 D' ~5 `6 k5 w9 {6 [
- LDA $6000,X
0 w$ W9 k0 [( p - AND #$08& X' L* Y6 A$ N. [1 l
- BEQ INV_RTS
" a' s& v* p7 R! o/ u - LDA #$052 J) y1 }+ L4 W$ G' h7 R! Q
- STA $04FF,X
+ m& ^# f0 a7 p3 i. q: \ - INV_RTS:
2 q' s7 X- O6 n- |9 Z$ I4 c - RTS5 ~; y9 d, g/ f" R- }2 s e, y
. J" w8 @; n$ f* k-
) k, P b& H5 T* N" Z - LIFE: ;生命
* Q% t3 |- b I# R& T - LDA $6000,X1 {; P) b! q* h: L Q
- AND #$04
+ X% B# X1 P/ }: s; \ - BEQ LIFE_RTS; P. n; X% q5 o7 _3 x
- LDA #$09
( A v& V1 r% n$ } Q4 k - STA $6A,X
) Y; p1 P% b7 A - LIFE_RTS:
7 m; A; k! B* T) X( ]: {) } - RTS
1 ]! H, y: a0 }- X
6 K/ |8 X3 k. w-
/ _ w/ k H) J - BLOOD: ;血量! _3 e* L, o, K" ]
- LDA $6000,X
$ U7 ^% |; s1 b; Q l - AND #$010 i9 A! u3 v% |) @" \7 O: ]9 Z
- BEQ BLOOD_RTS
7 ?0 D8 T8 t: R( v: _( K - LDA #$7F
9 E6 B" _+ q3 h5 z4 i: j5 T" G! Z - STA $04F1,X$ }. {( r: P, B, b( |+ }* u, q) U" L
- BLOOD_RTS:
" @7 L7 J$ {7 H - RTS
. v" M1 t3 ^$ T; J3 [) k$ b" g - ; W# s' U& g% m6 y
-
* Z. X1 R3 f$ H( y - 9 t+ z$ P8 C, F; l$ D$ D! R1 m1 R
-
) C2 T9 Z* ~* N( @4 H3 W - .ORG $D29F
# ^2 ]2 [" f& a8 X - JSR $FF80
$ g. R8 [ x C7 ^6 P* b -
$ L& `$ C7 V' M$ c8 B7 ^* H - .ORG $FF80
% V( C9 T- w0 Q% }4 g6 M" j - KILLBOSS_BY_ONE ;BOSS一击必杀
8 C( [0 v9 ^) d3 S; B' F6 u - STA $0628
2 V( R6 T' t" u; V- ] - PHA
( H! F. m5 A3 ~; o/ y4 Q - LDA $6000. }- f; W) Y2 V& S5 S( Z7 ?
- AND #$400 ~$ l1 _5 p9 y& o% R8 o7 ]
- BEQ ADDRFF8E4 R& i/ m2 Y. g- b1 ~, N& M
- PLA( h$ W- ?/ c2 K3 Z! {: b- y2 r. x
- CLC ;敌方死亡状态判定: ^/ a% J7 H' t- x
- RTS/ A) `( E0 e* R
- ADDRFF8E:
5 E d+ O7 b" u) ? - PLA
: O0 O; t, j# h' [, [1 E - RTS
7 r+ Q& e2 U2 M+ X' i1 x0 ?: I
' O \6 v: q; t1 K! W2 m
0 z6 M9 C- x. U7 r8 U' }- .ORG $D1514 ` P, U- C, w. E, |: r
- JMP $FFA0
7 |" h, U$ D x3 { -
# B3 \+ Q% }$ k' L Z+ F( K - .ORG $FFA0
D- \* F6 U: f; n - KILL_BY_ONE: ;杂兵一击必杀- j- ?# S5 b8 _
- STA $0621,X
1 L3 l/ |) f( r5 |+ M' W- q - LDA $6000
, F" g; c% R8 A5 a - AND #$409 N% Q0 Z. s% Z
- BEQ ADDRFFAD. L; H2 w& J, v. C* n( K
- JMP $D19A ;敌方死亡程序跳转% J! C; S8 X9 C8 ~
- ADDRFFAD:
+ F0 t6 ~) X+ R% P! F' m) a6 C - JMP $D154
0 W% _1 {# s% Y/ m - ) [6 q, T; v; z+ ~) _# }# ?
- 3 i* T; I! W" C' d% R; u
- .ORG $A7F6' O/ H" m6 Y- ?2 f
- JSR $FFB0
' L6 @# x, X w: ]. H -
8 k$ N/ C8 [2 v+ R1 i - .ORG $FFB0 ;全屏攻击
' Z# k! D9 i/ F$ W2 J - PHA
2 P7 S+ Z! `- F6 s* R6 g - LDA $6000
2 b K! O8 L7 \: K' v - AND #$80+ o' u! y- ~; V8 w
- BNE ADDRFFBD+ E) I: X$ \4 e# {& o: c6 v
- PLA" [0 B% N+ L7 v* H* P
- LDA $0015
6 F. h6 S4 G+ n- n. W! O - SEC( L+ G/ R/ Y o, A/ i
- RTS
7 p: j* K8 l: c7 j5 ]* K- S - ADDRFFBD: U) a9 {# [$ H' L! A1 s
- PLA
( u. V3 u9 ?+ u. P8 @# n - JMP $A826
& w& I7 j, ~" V" l - + e& G* u! J0 B
-
$ K7 C* n1 L( }8 H* \ -
& R& d3 o1 \; \3 x7 Y - .ORG $AA6A& q- j% q, A9 m D2 m1 G
- JMP $FFD0
6 n( _5 t. I% \# R: X( e; X4 W - : [1 ~) k% l+ G4 f8 D* Z
- .ORG $FFD0 ;敌兵动作忽略
% D1 @: I+ x; M( V8 I! N9 \ - PHA1 F9 a7 `" t2 k! B* A% c
- LDA $6000. Y6 T! d3 g% t6 R2 O
- AND #$80
3 d& T1 E- {5 ^ ~( \1 g - BEQ ADDRFFDC
& ?" a: L2 b6 c1 M - PLA
6 [1 O; Q7 r; ~" `$ c6 x2 _ - JMP $AA72
! [: W+ [" P6 e i0 c+ L - ADDRFFDC:
; Y' k# y4 y9 a$ h3 g' i7 F - PLA
$ \0 v: @" L1 o) V, Q& `2 P. O - LDA $0629,X
# L9 k; D, l3 w' I - JMP $AA6D9 P$ d! `& j* d
- " i/ L5 B* a- ? |) g
- ;[FC][忍者神龟3代标题选关程序]
2 n. W8 n% B8 d. }( _1 g - ;作者:FlameCyclone 2017.4.1/ a" Q# N+ b! ~% O7 s0 E
! L, g. }! i0 _' L! F- 1 N; S! C/ {( X
- ;配置数据$ Q q Q- X, U5 T( x6 r
- KEY_ADDR = $F8 ;按键地址4 v9 v0 O$ N. Y, E2 ~, N/ S
- STAGE_TEMP = $6010 ;关卡临时地址& {, V8 ~+ ]/ @0 I1 }2 O
- STAGE_MAX = $0E ;最大关卡数
/ _; M+ Z8 X: A" Z+ I - TITLE_A = $20 ;标题条件A- m0 g; `" `5 `5 P" |
- TITLE_A_ON = $02 ;标题条件A有效状态判定
" C& x) y& u/ {6 x4 G! ]& X/ h" c - TITLE_B = $21 ;标题条件B: }1 U- [. k1 L g8 {9 I
- TITLE_B_ON = $03 ;标题条件B有效状态判定# W, u3 y! ]! e( {- u
- PPU_END = $FF ;PPU结束符8 q6 c" z, v0 m3 ~" l" D% f
- TIME_LAY = $4A ;标题显示延时地址7 w2 D, x$ w8 Y: |" Y9 j
- BUTTON_DEC = $42 ;关卡减少按键
! A; g* K( N \ d' V - BUTTON_INC = $81 ;关卡增加按键1 ]6 s, v9 k# t6 V. m0 L n
- NUMBER_A = $06 ;数字A距离STAGE偏移量) J+ H% P. i( K* n: B
- NUMBER_B = $08 ;数字B距离STAGE偏移量
9 h/ H2 x: V- G; Q0 ?" h# K0 D - PPU_ADDR_H = $23 ;STAGE写入地址高位+ h9 q) [) G, g) m( i% M' s" J
- PPU_ADDR_L = $8C ;STAGE写入地址低位# o" p1 w" J* I; S+ @
- CHAR_S = $A2 ;字符'S'
" R. i% q0 w. o" G5 W' _, a - CHAR_T = $A3 ;字符'T'( z7 v$ z" Z9 Z d6 ?" @5 Y) {
- CHAR_A = $90 ;字符'A'
9 [, P P3 B2 Z% ]; w+ a# y, E3 M - CHAR_G = $96 ;字符'G'6 V8 r1 c; m: Z, [ \
- CHAR_E = $94 ;字符'E'
% [' K" J! u3 u6 H7 t - CHAR_SPA = $00 ;字符空格6 \. L% `8 N4 |
- CHAR_LIN = $AE ;字符'-'5 b- ?* o1 A# o; E+ U! h
- CHAR_O = $9E ;字符'o'! T( r& }3 L; j
- NUM_1 = $81 ;数字'1'
- k, X1 \4 O% J5 Y, y: S+ g - NUM_2 = $82 ;数字'2'0 S& y. {, _0 f& D- L
- NUM_3 = $83 ;数字'3'# H9 u& z9 }, e6 M- B4 u- c4 z+ m
- NUM_4 = $84 ;数字'4'
0 d$ N- e4 s- y ~" B* v7 \ - NUM_5 = $85 ;数字'5'& Y" x. s6 b& z# U& R
- NUM_6 = $86 ;数字'6'
. c- x/ O; F9 u4 d8 ] - NUM_7 = $87 ;数字'7'
8 m5 Z, k' ^/ n7 t5 J- i8 K# ]# c - NUM_8 = $88 ;数字'8'
& P5 o5 u# q; {) y1 c - NUM_9 = $89 ;数字'9'
r2 ^ }# b* f1 Z T - NUM_0 = $80 ;数字'0'" w) M2 b. u* A7 Y
- ) J: h8 Q5 s" T5 Q/ v4 E( w. _
- .ORG $F82A
~- M1 Q- L4 o1 Y - JSR $E700
4 L y: Q$ v. N7 [ - ; s, L8 }8 b: H1 F4 l9 H: _& N
-
- v f( u7 ]6 p; Y - .ORG $E7007 m: l3 y7 u6 l5 T% R
-
: _; z! r$ P6 V4 Q. J1 v - STY $4014 ;补上覆盖的精灵写入指令
! A8 s! S. E8 N% w3 p: i - PROTECT_DATA: ;数据保护) k1 B% I/ F! r2 `: Q! Y) S+ j/ @
- PHA ;数据保护开始
Y9 J/ ~2 t$ X2 N8 x0 |; z( Q; u - TXA7 f. n$ j7 G4 j' T
- PHA0 D% e* \1 ]9 z5 I3 [9 `3 J R
- TYA
8 p5 x& {* O5 g& t/ g/ P9 f- @) w - PHA ;数据保护结束
' X/ }/ n* K8 ?: b4 @5 L5 P! N" z7 c - LDA TITLE_A
. R% y' m3 E0 s; b- p7 ` - CMP #TITLE_A_ON ;比较是否为标题画面. L' ^& X% A h; k5 d2 \! v/ D9 n, ~
- BNE RET' S$ O& |' k5 K, r
- LDA TITLE_B. X9 j& x5 V4 f6 K
- CMP #TITLE_B_ON ;比较是否为标题画面
" h0 r4 |8 r* W* J - BEQ PPU_STAGE
. k9 H. n% S$ |! Q( [ - RET: ;恢复数据
8 n# z7 @0 z. O) a - PLA ;恢复数据开始
% A& a) A- J) P/ b - TAY
* f6 Z; Z _4 @ - PLA/ [0 I1 T& a7 r4 O2 r! \) H
- TAX
" w/ z5 T1 F+ g, {/ L" V; y, D - PLA ;恢复数据结束# W" ]( n/ Q# Q( P( x
- RTS ;返回: C( k5 t1 r7 Y& L# U
- PPU_STAGE: ;字符STAGE写入程序* r: |, m6 ^+ |/ i0 e$ f3 V
- LDA #PPU_ADDR_H
& T, X7 u9 F9 a/ ^% n+ O - STA $2006 ;设置PPU字符写入高位地址
2 R8 p( V: C+ U' t1 e: U - LDA #PPU_ADDR_L& O* a* Q6 Y9 F, |% J) h2 X
- STA $2006 ;设置PPU字符写入低位地址
1 c+ ]* D6 d# U% h - LDX #$004 _# h5 M- z' K9 t
- PPU_STAGE_WROTE: ;写入STAGE字模% `7 \& I3 `: I0 U4 r( X, E
- LDA STAGE_DATA,X
5 [( z1 Z/ _+ Y2 i - CMP #PPU_END ;判断是否写入结束/ j" X$ Y" L0 F; d( O
- BEQ STAGE_CMP# m) b. t; y$ S5 D: A
- STA $2007
/ k! F& \% G7 } - INX5 e5 A0 {( K. J, A( _! k
- BCC PPU_STAGE_WROTE ~9 E7 [" l+ i( Y
- STAGE_CMP: ;选关操作2 m5 I4 ]" T$ [+ v' ~5 @, p/ K
- LDA STAGE_TEMP
2 G2 P7 M- |; g L9 i5 [ - CMP #$FF ;关卡数据初始化条件判断- i8 T# m$ H" A' m3 u1 W4 l$ B% V" U
- BNE KEY_B
' E! {7 T$ g7 F0 f9 l - LDA #$00& W2 A1 O4 X' i! U9 m
- STA STAGE_TEMP ;关卡数据初始化
9 |- G7 ~& X& ?/ O' O! t1 D- X' F - KEY_B: ;关卡减少
, S$ T) S+ }! a( R - LDA KEY_ADDR
7 [; \) Y, n( I" T% b - AND #BUTTON_DEC ;按键B或左减关$ [2 f% t4 `8 P: d; t, L3 d
- BEQ KEY_A
/ Y* C7 W$ ?3 q3 e! J5 R; ^ - LDA #$FF
6 O& f8 M/ O0 C0 y1 _% i - STA TIME_LAY ;重设标题延时
3 {4 T$ k R/ |( i - LDA STAGE_TEMP
+ V' J0 L. c& g" e9 f2 o! s - CMP #$00 ;关卡比较
9 r: ?+ P3 N7 V, e - BEQ KEY_A7 o* m' p) t) d/ c7 \' D1 M/ a
- DEC STAGE_TEMP ;减关
* p5 o/ g' F# d& T - JSR MUSIC ;按键音效
: @5 h+ ]6 X: |4 F V3 ^2 H - KEY_A: ;关卡增加1 v+ s0 `. A$ `' U2 n* W1 l
- LDA KEY_ADDR) p5 E1 `0 |" ~
- AND #BUTTON_INC ;按键A或右加关
7 A2 C+ Y, G! g - BEQ PPU_NUM_WRITE X3 t* M' `( g& L
- LDA #$FF; t3 M* A$ A" Z5 i" {
- STA TIME_LAY ;重设标题延时) B. \( G0 G& b' f. A
- LDA STAGE_TEMP
8 ^3 A# b" ^( F9 K - CMP #STAGE_MAX ;关卡比较 ^& C( Z. ~) h2 n A6 ~: C9 ~+ O
- BEQ PPU_NUM_WRITE
" ^; T' u6 H; |& {; M# S& e - INC STAGE_TEMP ;加关
) ?/ x' D/ o4 A- B0 l9 l' F- ? - JSR MUSIC ;按键音效
& Y* r( B* ]" o; }' b - PPU_NUM_WRITE: ;关卡数字写入地址
; {' _. k5 ~: _- C! L: A - LDA #PPU_ADDR_H
( |. c) Z) I% {) j6 I- F - STA $2006 ;设置PPU数字写入高位地址( X+ W( N' B( s l& V' R# \
- LDA #PPU_ADDR_L
. w5 j8 v* [. r9 A6 C+ F$ J - CLC
: A" V. \9 u, \5 G9 J - ADC #NUMBER_A
" Z7 k' o1 p1 O - STA $2006 ;设置PPU字符写入低位地址, k4 F: y; A; l% Q( x9 c
- LDA STAGE_TEMP
& U- l* q- a# O5 K; |1 R - TAX M! H7 L# [+ b. i
- LDA STAGE_D1,X ;写入数字
" j! r0 G, Y' J - STA $2007
8 r' O4 b5 V3 O. z1 e ~/ ` - LDA #PPU_ADDR_H- [! k1 X# X( ]9 N$ a9 s2 G
- STA $2006 ;设置PPU数字写入高位地址
/ f! A6 D1 Y6 A$ K! k - LDA #PPU_ADDR_L2 F9 e8 T* t: W. q$ l5 v j9 J
- CLC
4 O8 A2 M- D7 Y& p4 f. R d* ` - ADC #NUMBER_B
2 Z: [) Y+ l @6 v) h - STA $2006 ;设置PPU字符写入低位地址
" B# C. ^: k9 |9 p. H - LDA STAGE_TEMP
8 E2 a* S* A9 @9 L9 q - TAX7 l0 ?' ?$ L& Y& R8 S( b
- LDA STAGE_D2,X ;写入数字' `$ \/ H: U% }) F
- STA $2007; ~; N# m9 {: f4 Y1 Q" \' ^0 Y8 l0 N
- STAHE_WRITE:
+ c# c8 k3 w0 I- w) e, |4 B0 J - LDA STAGE_TEMP
) }9 S$ A5 G3 e Z5 U - STA $2D ;初始关卡写入
# Y8 B; V, c6 ?8 z0 D8 M4 r - PPU_RTS: ;恢复数据
- m. x5 M0 A2 c" T' }1 M - PLA
/ t4 H i) F* \( i! Z; ~ - TAY$ z+ d9 {+ t1 \
- PLA9 P& n3 p' q3 Q
- TAX/ R& }0 S; s D( _
- PLA
3 v; W% S$ r7 _' n$ v4 \6 o - RTS( P, O# M, Y: }. E$ E
-
7 V) h: C! w* T' x5 e& T7 g1 o0 }$ D - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据$ X4 P5 D0 V2 d* L, z5 Q
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END; b" P! c- [; H/ R9 r
- 8 ~: {9 o8 v- X4 R6 g
- STAGE_D1: ;关卡数字
+ y2 k+ P/ j w3 f - .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
- Y8 r; l9 I/ t5 Q1 W+ f/ W9 y
9 C+ P* Y6 N* y' H# w( B- STAGE_D2: ;场景数字
+ [5 |7 S" \! F5 }0 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
+ ^8 M: v/ c% ^2 r -
: d7 ]* B! n, O5 J. w0 L/ |5 P- q - 5 b D$ x4 S: N# Y2 x
- MUSIC: ;按键音效
; h( I" l" i8 G8 Z4 |! @7 @- E" g - LDA #$3B ;音乐号
6 E. [% {4 b4 W N- W2 C' t4 ~2 F9 U: P* k - JSR $919E ;系统音乐调用4 T8 c3 p6 V2 U4 O/ F
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;3 a! B2 B h, E( S2 R
5.生命加满: 暂停后,按下键切换;
" E3 b E/ j( U& c 6.血量锁满: 暂停后,按右键切换;
' y1 F7 O0 `3 M- O& _
# t+ \5 f; {+ @3 O/ x: h$ w7 J! C- X' u$ J4 n1 I
, C" e4 [& T: o/ ?+ u1 U3 G
9 |; j- R: @- l% v, L' g: H5 d+ Q5 H( U [
FlameCyclone.ys168.com( C, T3 _- ^; v: s) S8 `
www.nesbbs.com7 k+ z7 l" ^0 F. z: h
: N' i, j; f* Q0 q& k% L |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|