|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
) Z) x5 R1 q( G7 q1 p
" {- L8 C5 o5 T8 m( p[FC][忍者神龟3][END选关]/ f( h( d* @% |2 [) R: [
" m! Z7 Q9 h, ~$ b2 ?' Y时间:2017.3.30; u0 e @4 |5 k! \
作者:FlameCyclone
D2 w0 l- Y# U" ~/ V3 a内容:
$ `4 I3 g3 k1 J 1.关卡选择: 标题时,左或B减,右或A加;& C* K5 N' \* N0 [
2.全屏击杀: 暂停后,按A键切换;, F% V+ r7 P ^) a: ~0 y4 H2 t; l
3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0+ a, L& Q! k% f7 y
- ora_data:
3 s: M. W) z8 m/ {/ I8 z7 s! ^ - .BYTE $08,$04,$02,$01,$80,$40,$20,$105 U+ R) |0 G- R- L% B/ c
- and_data:5 c; H, u+ E3 C) A7 L! o5 L0 v
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
! q7 V; q8 S$ I9 \! R3 N0 B -
* }/ m: \( M4 s( p& w; F - button = $F8
, i- V b: m' r9 W - flag = $6000
$ V) m0 a, m0 G! ]3 ?( o - pause = $0045
7 w; \) k- E! Y" X) e- T
4 W1 A0 M% I$ @- }6 h" m) t/ u. s
- .ORG $F90D
3 [ O0 c( N1 v1 [/ T, i - JSR $FEC0& T* W' W2 L9 K f
-
; r3 C3 U" f* i* I& i) m - .ORG $FEC07 ~ M( T: O2 \! I! Q
- STA $54,X
" @7 p0 T: f9 E - STY $FA,X9 S; H0 p# T; V8 \, O
- PHA d6 p" a6 F: a: l* W- H; ]
- TXA; `: m0 c3 i: ?$ w8 e1 |0 A+ Q! N
- PHA
" I6 Q* ?. C7 e3 @2 v) i0 d1 U, @ - TYA
; z# t& b/ [% W4 x S - PHA
J; w3 g2 a n0 U - JSR KEY_OPERATE! ]5 m, [1 A0 E
- JSR INV
$ b( w) o) ^" |; G4 G( {' f9 R# i - JSR LIFE
# _! c" l: ~- s; V) T3 j' l. m: G - JSR BLOOD
1 b- ]( L* M9 s* E7 [4 l# ~9 v# u - PLA4 W# b/ p9 J6 J5 j
- TAY7 }1 A+ ~ C$ D' }6 |2 q/ E
- PLA" F2 {9 X' O2 K; w6 S4 _
- TAX' c' r8 \; U. q
- PLA6 X! f8 h. F% E" U; _) B8 G
- RTS
' i" N( Q. y; j' v. N9 G - KEY_OPERATE:
) @# w3 B% N$ @- B8 H - data_protect:
% S/ j4 N+ n- P, U - PHA0 `. W o" o" ?6 G- L) n8 h
- TXA- z% o/ X ]8 R w3 \
- PHA# Z% e- y6 i' I2 O: W
- TYA
+ j) X/ _7 r/ Y t - PHA
' Y" D; c+ V- s3 L+ n- F1 `8 [ - ) p* r. Z' S6 B* d9 L4 m
- FLAG_CMP:
4 [- T ^% P4 i9 R W4 m# J, j - LDA $600F/ U9 C7 y# Z% q$ ?2 d
- CMP #$7F ;标志数据初始化条件判断
. q, V* S3 v# M9 t; j/ p - BEQ pause_cmp2 d( l9 v8 V6 L! o0 Y
- LDA #$806 P+ _, v2 S! S3 h3 l1 h2 w* P
- STA $A001 ;6000-7FFF写入启用
) {1 n8 ~- }5 n1 b# w. k; h - LDA #$000 x0 @3 D" h! I" o! c- j* _: W
- STA $6000 ;数据初始化
0 F _) I8 m2 `& @ - STA $6001 ;数据初始化
" _0 w# X" T: q* s - LDA #$7F
% n0 j- X) W# V/ T; x - STA $600F1 u" D7 x! k/ q
- pause_cmp:
, J) Z* N/ |! N- U" l - LDA pause
! q. c" `9 h! t( I - CMP #$01
% O( a" E- @0 O" E1 T7 i( Q* r - BEQ button_press( u. d0 l @/ J/ R6 q
- PLA" X$ |) }# q4 m4 Z- j
- TAY% C* k; u1 F0 R2 U$ [* {+ [" K
- PLA
; w v$ O6 E1 R6 S - TAX
+ P9 V7 i: p3 a3 c0 Y6 T, y9 W - PLA7 E8 a) _! a5 {, s6 |1 W1 @0 U, V
- RTS
( J+ \1 _7 J/ N: M3 U0 @
- `! [" h8 ?* Z: S4 n, M7 M1 |- button_press:( O7 H* \7 V7 h! o% |5 U
- ini_Y:
. h% v$ |4 | D. h6 K6 f0 }: d - LDY #$00
; V" T, v# a; j+ T6 E: s - button_cmp:6 S1 t6 E: E5 |9 d! `: W( g% a
- LDA button,X, V# i9 U. j: m+ _
- CMP ora_data,Y" Q& J0 o' v; K
- BNE count_Y_cmp
% K! k1 D2 X `* k' T& d( ] - flag_cmp:7 C, I+ P! x) }
- LDA flag,X
7 G# n" P$ `& ] - AND ora_data,Y
+ z4 R( M4 g8 D - BNE flag_and
I6 @& w/ R2 Z( V& B, F - flag_ora:/ H7 o- n. r! ?5 h& K- b3 P+ K
- LDA flag,X9 B' `, X4 b4 ~/ u5 g2 w4 V& N
- ORA ora_data,Y( w' w" g7 m0 O( Y4 p" L& i
- STA flag,X
2 I+ @' s$ w* Y* c5 E4 s - BNE count_Y_cmp$ b7 Q! Q. U& R' W
- flag_and:) a5 Q8 h' f0 J
- LDA flag,X ^: p- \; B$ X5 N) n' i1 V; D
- AND and_data,Y
# w6 c2 ^1 X5 O0 F9 ~ - STA flag,X
( u$ ^9 y- b( @% e - count_Y_cmp:: m# q, u/ t' \$ b/ O+ Z
- INY; P! H4 l- r" ^: U3 J
- CPY #$08 G4 e7 Z- {4 M! L
- BCC button_cmp
- E! V0 F& a6 k- K/ I" j -
& B) J# W) L! q1 h3 ^ - data_extract:
( n4 A& x1 S% b4 ~2 e - PLA
9 s+ g O E3 z; r1 n - TAY
- W$ l/ n/ d1 o - PLA
% z! f, t. F2 y% A* o' C% W - TAX a. w9 r- i" ]. c
- PLA$ v" B. V, q3 R+ D8 }3 o$ b+ U
-
+ y) q5 m D8 u! S - return:
9 N2 `- }. H N" \6 X' k - RTS
' ?8 l7 G) {: E3 D4 i: o -
7 A. S. S; }- i* k - ; H6 y+ D# ^; B% S0 M7 O! @
- INV: ;无敌
& M1 |2 k0 h; E0 L: x - LDA $6000,X
* U T5 N, J% }4 y6 z% l& {# ]8 l - AND #$08* q D" ]; ] d, K0 [
- BEQ INV_RTS
' q) H# B/ _3 H# V6 {$ A - LDA #$05' Z* c& L3 v# a! p" g. k- [/ n
- STA $04FF,X
9 P! f8 h( n' B& R3 Y - INV_RTS:" U1 V( Z. Z; ]
- RTS
6 }" z. ^, S! m. {& Z" Y- n* @
7 q [: ^- ]( S" p8 ?- / g+ |; q0 ^0 d/ e( \9 }$ R
- LIFE: ;生命
+ _& o1 K& n: B7 n4 X+ N0 [ - LDA $6000,X/ N: Z# R- }$ I3 H) F6 G
- AND #$04; |4 T9 ^# T) I2 B; l/ J
- BEQ LIFE_RTS
/ M" U1 u! l ]& N; F& C - LDA #$09
9 b3 j; X( S/ a) b8 U } - STA $6A,X
! E. N- X B' b: J) h$ d% F1 _1 M - LIFE_RTS:, ~: }4 k! j/ M. s. p
- RTS5 i5 V! o: V; F! z, t
- 2 R* p2 h: h M, |4 c8 M
- 4 i, C/ R5 F; o8 y. w# X
- BLOOD: ;血量
, W- @& g: W5 }0 E6 W( C - LDA $6000,X
0 `$ Z( j7 b$ g% E( p5 ]; S& v# H/ c8 E - AND #$01
- ^' b+ |0 z# s! w+ i - BEQ BLOOD_RTS
4 }8 p4 R5 t: {3 n# G1 t7 p - LDA #$7F' T- R. b4 L3 f/ e5 V% {
- STA $04F1,X
, I) I x2 V4 y' \' _, D - BLOOD_RTS:; }2 v' x+ @: k: W) [* w
- RTS
# p9 |' e" I2 u6 [! m* H) p7 [ - / {2 j$ r; M. T, O
-
3 f5 d9 O# h: h& T -
- @0 E/ k T/ o& A/ h& g# T -
1 Y, ?9 e; T4 {4 c% r - .ORG $D29F2 B% {% _9 R& D
- JSR $FF80
) O; U8 t: s) Y5 ~ - - O; \3 @5 \+ l1 z( u
- .ORG $FF80# }3 E0 N! W8 X2 b9 Z2 Q9 G
- KILLBOSS_BY_ONE ;BOSS一击必杀$ R) Y7 {( S. y* [4 U) N1 }% g/ F9 o
- STA $0628
% h, v$ V: J' M& [6 \ - PHA
! E! g' g( O0 W0 f7 w - LDA $6000% M1 J8 @: |8 G# V* T0 N/ c: t
- AND #$40
8 I' I% b) g& t- k" B& W% H. F - BEQ ADDRFF8E- u9 c8 ~/ \' Y, p* W
- PLA
- T" s0 T5 z# F* }& U2 G - CLC ;敌方死亡状态判定( r$ \, N$ A0 l r2 O
- RTS. [: }, X' k+ }
- ADDRFF8E:
3 ^7 o2 q0 P. W - PLA& s+ |/ X) ~- ?) Z
- RTS) R8 B* p; ^* T |. P
; f% D3 c I* c* f; X& c- ' \# O/ I/ I( m+ L" z9 Y6 {( Z! G
- .ORG $D1511 t; K g5 D6 W6 y
- JMP $FFA0
6 i( L' h9 X! ~1 D. P/ v -
$ o9 M8 q' Q7 Z& u) L) ? - .ORG $FFA0
' J* l& E; W+ P - KILL_BY_ONE: ;杂兵一击必杀
1 @5 J$ ~. l3 b - STA $0621,X
5 m- V# L' j: \( I4 s, T - LDA $60009 G2 V7 }& ^5 D
- AND #$40. q( i4 x/ ]6 V5 F8 Y- _3 P6 ?8 |1 A
- BEQ ADDRFFAD
7 s' `$ ?. ^& R' H9 p5 A7 l - JMP $D19A ;敌方死亡程序跳转
0 F1 s1 }0 R4 {2 n2 Y( |- h - ADDRFFAD:/ N5 p8 ?8 ~. W& |( K
- JMP $D1546 t6 |8 R: Q# y. x; y/ Q! a: D: i
- & L* J9 l) k% K4 g6 q, c
- + X+ M: b' F0 t' z a
- .ORG $A7F6
6 A1 r: i+ j$ l - JSR $FFB0
" }9 m! | K# |+ h) @ }; ~ - / z/ p% a+ B; j. z! s' T
- .ORG $FFB0 ;全屏攻击, X. @ v' v% C
- PHA/ J, {) _, l* r7 Q7 o* W
- LDA $6000 ~+ Y/ b, _8 I7 U! |' l) w7 i! v9 F
- AND #$80- t( G: j# C" d) L- y
- BNE ADDRFFBD
, G, e: A# f2 ~2 D0 g - PLA/ C& E, U: N' @# C9 B3 _; T: Q6 u. Y
- LDA $0015" i: Y2 V4 ]* X' L
- SEC( J- m0 ^4 u( ]- \; t
- RTS1 o2 T. O) f; p9 B: t
- ADDRFFBD:
4 b7 ~/ B& z7 @4 W - PLA' t7 I: r5 \& \$ v' t4 a
- JMP $A826
& z1 k' U! _ E8 b - - V0 M( E9 s4 L" ^$ Y
-
: @. O1 f4 k4 i: n* D _ - / U. a' |& ?# u5 K5 V" a c
- .ORG $AA6A
! O8 a" {3 e5 V5 `& Z! ? - JMP $FFD0 x8 m3 V6 C& I" p
-
0 J2 w1 r7 y0 u# [5 p5 o - .ORG $FFD0 ;敌兵动作忽略
/ n! D( F$ u3 V! i3 | - PHA
( F1 n `8 d r! B - LDA $6000
! m( c- U/ X( A) {4 v7 L - AND #$80# q+ @/ h, C# G" w
- BEQ ADDRFFDC, N& h. T3 }* c; O7 {
- PLA& H4 C4 {1 g4 m2 E6 E
- JMP $AA72
+ {' i" r* p* x$ K: O - ADDRFFDC:' [! y5 X# G8 j3 M5 P8 g
- PLA
& u b9 p) O/ W1 M1 }" k" _ - LDA $0629,X. z, i- t9 Z) Q/ Z8 T1 ]
- JMP $AA6D
! p9 v! s3 g# C9 d! E5 Q
/ i/ q. o: o- P3 I" r1 ?- ;[FC][忍者神龟3代标题选关程序]
' O- U+ D3 {* V5 j# B - ;作者:FlameCyclone 2017.4.1
0 r3 o& h% c6 d6 x* V1 g - ) s9 k8 M# _" G+ r0 X( N& j
+ D) {( r! {4 @1 w( h5 {- ;配置数据1 T. I9 r' ^5 v5 i- ~: E( \: L5 w
- KEY_ADDR = $F8 ;按键地址" J" E6 s( x& M: l
- STAGE_TEMP = $6010 ;关卡临时地址
7 I) |0 d" |, u - STAGE_MAX = $0E ;最大关卡数
6 _) u0 N8 O: _: ~7 a/ s - TITLE_A = $20 ;标题条件A/ r, `' e6 E! Y, a' m! `
- TITLE_A_ON = $02 ;标题条件A有效状态判定, j. k9 P. D) m3 y& ^9 |9 @
- TITLE_B = $21 ;标题条件B
: B$ w( D& o1 j O% A - TITLE_B_ON = $03 ;标题条件B有效状态判定! s" J" Z$ x' |5 o
- PPU_END = $FF ;PPU结束符2 |: z8 o3 J" B6 r. k" A2 H) `, V
- TIME_LAY = $4A ;标题显示延时地址7 h# \9 X* ~3 Q+ H) }2 I
- BUTTON_DEC = $42 ;关卡减少按键
7 P0 y L, U; b, L- B( L$ Q - BUTTON_INC = $81 ;关卡增加按键7 F1 L! @0 C! T2 V# k9 T
- NUMBER_A = $06 ;数字A距离STAGE偏移量
& i8 g" g( N' |( [1 g7 u3 N5 h" l - NUMBER_B = $08 ;数字B距离STAGE偏移量
9 N: y a+ W+ P8 G$ B) b8 F - PPU_ADDR_H = $23 ;STAGE写入地址高位
1 J' K. [6 N8 b2 |/ t2 c - PPU_ADDR_L = $8C ;STAGE写入地址低位
! h% X5 _/ t; Z( v# h% a - CHAR_S = $A2 ;字符'S'
* U& v9 w( L6 \1 n4 i - CHAR_T = $A3 ;字符'T'. F! u% Z9 X0 |7 t9 L8 T- o" e& N) w; k
- CHAR_A = $90 ;字符'A'
8 l1 P% C( k, `( u( C4 o - CHAR_G = $96 ;字符'G'
) W5 C& f# F4 f; y2 D2 t! i: Z: z, V/ v - CHAR_E = $94 ;字符'E'6 G+ \8 J( f9 j
- CHAR_SPA = $00 ;字符空格
( |5 L' ~; E+ \; S0 t2 ?& \- Q - CHAR_LIN = $AE ;字符'-'
% d" L: w! x' ]9 [' ~. U( K - CHAR_O = $9E ;字符'o'
) S, f4 _& l. j! q Q! K& l - NUM_1 = $81 ;数字'1'
9 f8 s1 D, a& | - NUM_2 = $82 ;数字'2'. H0 b* R1 N v0 v4 V9 W6 ]
- NUM_3 = $83 ;数字'3'. w* Y+ z" @5 V7 l+ Y4 L: r; r
- NUM_4 = $84 ;数字'4'
) i$ k1 ^1 o3 ~2 L2 c3 v% Q% P - NUM_5 = $85 ;数字'5'3 |& |8 V$ L$ x9 C: f. y
- NUM_6 = $86 ;数字'6' v3 |5 Q8 X! b; z# i; l7 w
- NUM_7 = $87 ;数字'7'
* e! R% i3 X' x% d - NUM_8 = $88 ;数字'8'* o: z: b3 X" z0 T" i
- NUM_9 = $89 ;数字'9'( l+ ?) r* t2 G8 K) v9 E- |
- NUM_0 = $80 ;数字'0'/ N/ j' R! X+ E" [: U3 \
. X; E. B1 i* J, Q- .ORG $F82A2 A7 p0 O) d- {
- JSR $E700
$ }. [3 b5 ^4 P+ u1 U( n& \* O -
6 a. b5 V6 ? d( ~ -
& V0 o& ?+ \1 q# U" h# C0 \ - .ORG $E700
8 \8 @9 @4 r, q. }- ]) F" y -
9 c. D5 V4 d+ l - STY $4014 ;补上覆盖的精灵写入指令
' O! x' l8 p: \) l* V - PROTECT_DATA: ;数据保护
' D& Q* G& \& B. N) J4 n8 `# N - PHA ;数据保护开始1 |' r4 x2 ^, Z; i3 U: d
- TXA ]1 W; ]3 _6 u) q* Z8 D8 J
- PHA- D# {5 Y+ I9 b8 t7 ]9 D/ ~ Q
- TYA
( e' R2 ^* C% _3 R - PHA ;数据保护结束
$ K; g% \( {. I& w - LDA TITLE_A$ F% F: M& M/ M+ y' ?
- CMP #TITLE_A_ON ;比较是否为标题画面
+ _9 ?( n" |/ E0 ` - BNE RET
$ p8 D. j+ X: \8 r3 Q% A - LDA TITLE_B
. B4 v, V0 k8 [' G - CMP #TITLE_B_ON ;比较是否为标题画面2 ~$ O' d% f% O$ a# S7 ]. f
- BEQ PPU_STAGE
4 n* O1 G/ p) X/ D# a9 U; `9 { - RET: ;恢复数据6 X9 I8 a7 [- B4 {7 z9 N# h' L
- PLA ;恢复数据开始
* b/ X |% `% g2 p- x& S - TAY. F' y8 f" J, H; o" W- d
- PLA
# P- p6 I' V; L8 j$ e1 x - TAX
! x6 e. X( `3 e" h - PLA ;恢复数据结束
' G) @; G+ X5 z - RTS ;返回* c$ F# ~% W/ `# k5 \+ A6 s9 b
- PPU_STAGE: ;字符STAGE写入程序6 t4 S/ j" o& l3 y3 O/ T
- LDA #PPU_ADDR_H
5 Q% I( g( s4 {; L. Y - STA $2006 ;设置PPU字符写入高位地址
/ z# G# r3 B# R8 g+ C- j& f# ] - LDA #PPU_ADDR_L
' I0 [, y- g" b7 H - STA $2006 ;设置PPU字符写入低位地址
' ?+ K, ^% [: x# j# M- X - LDX #$00# R) }; N' w4 u6 r8 o( w4 P1 \
- PPU_STAGE_WROTE: ;写入STAGE字模# @' f) I- I; y; L- X8 m
- LDA STAGE_DATA,X; `. l1 s& G5 R. I9 ]
- CMP #PPU_END ;判断是否写入结束2 T; G5 m R" H
- BEQ STAGE_CMP, l# ]" `) G, @
- STA $2007
/ b. B% e8 f( P$ @/ t! g! G- v - INX. J/ Q% p0 ]( ^0 C1 b2 p- c0 g( n
- BCC PPU_STAGE_WROTE
- r- q( p( y; d0 R V A6 m - STAGE_CMP: ;选关操作7 z/ v" A+ _! E8 A- t/ H
- LDA STAGE_TEMP
/ q" p0 N9 M8 f& g9 i - CMP #$FF ;关卡数据初始化条件判断
: j, m7 A5 `' M# _ - BNE KEY_B
4 _; V9 i5 `" P! u8 P - LDA #$006 {" P' M: q, y8 [: i1 f, u7 o
- STA STAGE_TEMP ;关卡数据初始化) S) O9 }) s! |1 h/ U; \
- KEY_B: ;关卡减少
/ T' n' s) [9 H* |. L# R2 t - LDA KEY_ADDR7 }, O6 H& Q1 o H
- AND #BUTTON_DEC ;按键B或左减关
. \2 f6 u: t! I/ \! Q - BEQ KEY_A
4 b; G9 w* i) w- f - LDA #$FF* B* b* @8 s; g' x; B( [
- STA TIME_LAY ;重设标题延时
2 }9 T& b4 W6 H5 s - LDA STAGE_TEMP2 Z* G! j; _: O
- CMP #$00 ;关卡比较
" ?' C5 l9 u5 r; ]( @+ M6 S+ I - BEQ KEY_A+ L5 E) Z5 a6 ~8 x6 G( i
- DEC STAGE_TEMP ;减关
8 E- }# |2 V/ P: K) U - JSR MUSIC ;按键音效
% y6 {% k8 Q) B- s - KEY_A: ;关卡增加
. {* E+ p+ W: s# y* d1 l - LDA KEY_ADDR5 O$ v# N. N" I5 _
- AND #BUTTON_INC ;按键A或右加关% x! ?- U& t( ^1 U
- BEQ PPU_NUM_WRITE
; t1 u' o# q- ^" ~ - LDA #$FF
& p/ p7 L& y, u' ^ - STA TIME_LAY ;重设标题延时
* h9 D6 M2 E3 i - LDA STAGE_TEMP: c' |4 G8 a: Z% Z0 F
- CMP #STAGE_MAX ;关卡比较6 {' s! n/ X& X' w6 l
- BEQ PPU_NUM_WRITE
9 i3 a% A- u: J) F# c" S - INC STAGE_TEMP ;加关* |* }2 y: x+ j$ }* s# e
- JSR MUSIC ;按键音效
, S! P+ _* _! [& L - PPU_NUM_WRITE: ;关卡数字写入地址
! M% b$ t7 z) Q5 g' m - LDA #PPU_ADDR_H
! v! E" l& C/ m' F [/ q" N - STA $2006 ;设置PPU数字写入高位地址, K0 J+ ]- U9 s2 a
- LDA #PPU_ADDR_L% g# p- V# k& D
- CLC0 O9 ?9 h8 H, ~9 I1 I7 P" V
- ADC #NUMBER_A
7 t: v6 i" {: v) Q& \5 J/ M' J - STA $2006 ;设置PPU字符写入低位地址. F( M S4 j5 R+ |( G8 G. e: F% X
- LDA STAGE_TEMP
9 E* G# E0 z. D3 r - TAX
+ u E8 N* S1 }5 z - LDA STAGE_D1,X ;写入数字
9 y: e& q/ K9 d& }% f - STA $2007
: L/ }" C3 [' B' m. W' T* Z - LDA #PPU_ADDR_H7 U" B! @3 b2 u
- STA $2006 ;设置PPU数字写入高位地址
: _6 f# P% [2 ^ b0 i3 ? - LDA #PPU_ADDR_L% \6 }5 u' Y$ D, x% k* _4 ]
- CLC$ T) D+ P$ ^$ s) H
- ADC #NUMBER_B
" n3 I( S) T$ \ w! S( [. [" G - STA $2006 ;设置PPU字符写入低位地址
( L( N5 N" n( `3 p - LDA STAGE_TEMP# g% o+ @9 U0 V4 H: {9 Y
- TAX5 q+ |. V4 f* a- M
- LDA STAGE_D2,X ;写入数字
: O' G) u1 T0 x% }0 w1 k( v" f - STA $20071 X) ^) z( D& `/ h) Y
- STAHE_WRITE:6 ^1 R. N& W: Z0 h/ `& @! i) f& w: K
- LDA STAGE_TEMP5 q' y( ?# p1 B0 O
- STA $2D ;初始关卡写入; R1 ]# u* a% K1 V
- PPU_RTS: ;恢复数据
' [; f* [, ?4 u* Q' S7 O - PLA; w: D) y3 a3 E2 y7 z
- TAY+ Z- g( l: W: N2 @( w
- PLA, X3 z7 C5 t) o; Y5 }9 M
- TAX: Q( ?2 f4 z! r. C6 N
- PLA8 i7 u+ T+ t7 B
- RTS
* h) Z! m5 U6 H9 Q" h -
7 h( b8 e# ~* v# Q8 s/ } - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
* e$ y1 C9 D2 P. A: g - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
% T2 B* I @+ I0 `) z
. U; W1 y# `: j! b; `( C6 P" Q- STAGE_D1: ;关卡数字
! E, v t2 m) V3 Y# K - .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
2 ?- M. R+ M E: B1 T - " R+ ?) i' C9 P/ b* p. z6 V' v5 Z
- STAGE_D2: ;场景数字
, T9 F# h9 n& G) @- q: I - .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) K" Y- U! K+ V n8 t* l% R
-
* W! O( _5 Z% Z, m3 r& I - ! p. j3 |1 m- m
- MUSIC: ;按键音效
; [2 V* H6 q* n" m( B2 y2 c$ p - LDA #$3B ;音乐号
/ d0 N- Q/ _0 ? - JSR $919E ;系统音乐调用
' t( k, X% E- I; n `, ] - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;: G* d) _8 ^8 ~7 K- q% t
5.生命加满: 暂停后,按下键切换;
* D, m! p4 Q) n6 e 6.血量锁满: 暂停后,按右键切换;
6 _0 j& W# f( T% X- _0 p
, G! z# A( u; d: H$ C ( J k+ G" f3 ~8 O/ r
* g' ~; |7 L J: T
8 z5 E& `$ m2 N/ J6 Y7 W l+ E
5 _& z8 _1 @+ T0 ]5 _9 L- ?FlameCyclone.ys168.com/ M4 E4 \! c& w: M" F/ G" g: `
www.nesbbs.com; f5 G. M! `! _! e; M* y( r
% W4 U% [) c3 I0 ^( \ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|