|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 : F: H, g- x9 n( R% s1 z, j' U. [
7 U; E% B/ Z0 w0 M, x/ F[FC][忍者神龟3][END选关]
, Y8 K9 l2 }9 n" r
- D7 Y6 k7 ]& V% U/ Y& ~( h+ N: T& ~时间:2017.3.30
$ Q. m% n! X U作者:FlameCyclone' A# p! Q' f$ y
内容:$ o) J* x- k$ L0 V- Z
1.关卡选择: 标题时,左或B减,右或A加;( p7 j5 b, D8 d1 c& z
2.全屏击杀: 暂停后,按A键切换;
1 ~' b e) s8 ?- s 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
- [3 _0 o: b( Y4 b6 ?) H - ora_data:
3 ?6 m/ }0 C0 c1 ~$ G! K - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
' F9 P/ ?+ y5 N9 A* [ - and_data:7 N2 I t" h5 m# B% ?* L% m, M. T
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
! U- Z( {. o1 p) c - 2 j$ \ x: \ s0 Y4 A
- button = $F8
+ m6 i+ E& w" c, O, N7 L: U - flag = $6000/ `$ L$ ^5 G/ F( G
- pause = $0045
8 a" n& L* L, \! x. W, o
. R% h! G: G' v; g6 }7 v3 n- 3 V7 @; R4 E5 t
- .ORG $F90D% ?% _% g" K$ A& ]0 }( V
- JSR $FEC0# x3 O6 Z" {2 P
- 6 d' g0 {0 i, R V% O8 P# G
- .ORG $FEC0
+ B* c3 y8 q( Y1 F+ l. ~4 N! k - STA $54,X
0 d9 m: `3 w. E - STY $FA,X
9 H& v" z# u: F - PHA
6 d& j& X* m- q7 Y! k% R+ O: {. ? - TXA2 ~# v8 m$ i6 \
- PHA$ O# L. }$ b$ W; |
- TYA! y3 [3 F$ r/ O$ C! m3 r0 Y
- PHA! \- l1 Y+ h- I* j
- JSR KEY_OPERATE
* h' F. T; g; B4 g/ X( y% r, S - JSR INV
- m* A! u- u/ `! Q0 \- O: { - JSR LIFE
' R/ L! Z. N& ^ - JSR BLOOD- f7 g3 {- X& ^) k
- PLA
! K# Q; a; e" W w/ P l - TAY( Z1 ^8 N# n6 L; _, z
- PLA
$ D. }! H; d; y" M" e. ]8 U - TAX
# M" L1 e+ k, s - PLA
# {; V1 a9 e3 n/ d - RTS
& T* I: J' ]" J9 ^) E, s( k: a c9 @ - KEY_OPERATE:* d' h4 o* s1 m5 \! f( @* h( e* j
- data_protect:; V6 H3 m+ C: i' h+ f7 N- a1 z8 q
- PHA
# z; n/ }# t& \" t* \) i$ Y V - TXA; Y7 u. }. O1 }) Y" M7 q, e, d3 J
- PHA( V" i5 l3 U) X/ p0 I/ F: ^; _
- TYA7 b! f0 b$ V2 \/ `
- PHA
$ P0 \+ m- r5 x f6 f- E - " p( j4 p9 ^1 D' j M/ c
- FLAG_CMP:5 v7 d, D. u7 z5 i+ q! b( e, X
- LDA $600F9 R) m/ o4 _" L. |# e8 I
- CMP #$7F ;标志数据初始化条件判断
' K5 p: F4 ~8 t2 c8 x( o - BEQ pause_cmp
& B4 H; }, v V$ l$ a7 x R - LDA #$80: B% @, v$ x U+ J
- STA $A001 ;6000-7FFF写入启用
" h! Y* D+ a* P8 [" K2 h5 V - LDA #$00
3 |; s6 X' R0 T: r - STA $6000 ;数据初始化
, f- z) i# E/ f( `; ?! V - STA $6001 ;数据初始化
" P1 p/ u. M; u; u1 T/ w1 e7 s$ R - LDA #$7F, P: a$ G- t( ^0 z9 h8 I5 ~6 H* R
- STA $600F! r# } m( T( H
- pause_cmp:: S; {2 m* I/ ^ M2 v5 S% ~
- LDA pause
. h! B6 C. t7 G5 _4 y" b a - CMP #$01
5 y+ A% o# ~; S; X; b. L9 _ - BEQ button_press7 E0 {% [# G+ R/ T, Z2 A
- PLA7 A7 s: d6 V) u* w' S T c6 J
- TAY
$ i: w; C! R- ]3 l4 q - PLA! w4 ~4 K; ^; f
- TAX
8 t2 |( O7 ~/ Q, R9 Z* Z$ Y - PLA: g2 j! }* T: e, X! [) i
- RTS) k0 x0 u/ r R0 c
- 7 ~, v) Q0 q5 r' W! M' A$ H# [9 ?) v
- button_press:
; L; W* A/ c/ g1 M% H' B! { - ini_Y:
?/ ~& C. C% d: D, O& ?6 l3 y w% F - LDY #$00% g+ c. Y5 ^2 j2 I* C
- button_cmp:
& q' B2 e: \& ~8 F6 K: r - LDA button,X. ?- h' t% J8 B* d& `
- CMP ora_data,Y
! D- r% g8 C4 b0 h; n8 z9 e- O - BNE count_Y_cmp( k, D6 W& p0 P
- flag_cmp:
0 \* E& Y+ z Y! @ - LDA flag,X4 P# s' B+ \4 c. J3 J; h
- AND ora_data,Y
+ z; z3 k" H" `/ L% ]- G0 {: w _ - BNE flag_and
8 P$ k$ q4 e$ l, d1 Y* X/ @$ g - flag_ora:
. M. u _9 ^5 N r- T1 w - LDA flag,X' \( x$ {9 r, J! O# J% Z
- ORA ora_data,Y, I" d9 `7 I0 a8 A
- STA flag,X
* m- |5 l4 A; {' k - BNE count_Y_cmp
6 O3 |/ \7 e8 H1 q. r! I - flag_and:
3 G( Y# U) C) {" j2 x$ }3 K - LDA flag,X- L5 @& K* {; }0 @- O; s
- AND and_data,Y! x( ~2 j1 k' R, g3 B
- STA flag,X
0 w" V1 A/ _& D4 {+ z1 G1 }( t! \6 a1 s - count_Y_cmp:
( B7 E8 e! x+ E" l- P - INY
, j) y1 L1 w; ^( P1 c - CPY #$08( V9 x9 O: s4 _7 i
- BCC button_cmp
! Z+ G# a0 N% l q+ O" v - " j6 i9 `" q7 E5 ]) h" p
- data_extract:
& l0 Q, x: e: y3 ~2 v - PLA& W- {: E' |9 o1 i. n4 b5 Q* `
- TAY
$ o \4 y+ i& _5 M: V - PLA" M U# @6 A5 u2 h: h3 i
- TAX4 H5 {* e6 L. _& C
- PLA
9 [2 f/ t3 K% d: n1 |* E - 5 ^, @. K0 g- ?5 G _
- return:) e' K8 w' n/ ]. l* z6 i/ K7 a/ @ u
- RTS8 Z: r3 d' {8 G9 S
-
/ N9 h7 `- S3 B' w - ) L! C$ \* x9 |+ y8 w1 m
- INV: ;无敌! [( L$ A" Y7 ?( H8 P" A r
- LDA $6000,X. x4 W3 \& T. g/ a
- AND #$08
" t& ^: l' U3 a2 Z0 Z2 q - BEQ INV_RTS
- b5 Y% C! y- Q% C# W; u - LDA #$05) b: ^0 x% {; [
- STA $04FF,X
2 X3 b/ T; Q7 z- Z6 g - INV_RTS:7 U5 {( s* H$ f& ^7 o
- RTS
0 A5 w3 v: j0 D$ s( d6 s
3 O K) E& z' y-
- Y6 V/ b- u+ J6 v1 T# t - LIFE: ;生命" r7 ~" q: n7 N" m
- LDA $6000,X
6 B' _7 ~- o- d& [, P/ E, w - AND #$040 `; D4 U' y" _ q- X
- BEQ LIFE_RTS
1 x! x7 ^9 d0 H* Z$ x6 q - LDA #$091 [8 U; B0 D$ c# ?
- STA $6A,X
J O) l$ p$ K - LIFE_RTS:9 l. ]( d: ]8 g8 W1 p, a0 a
- RTS
1 a( s! n/ ]3 d! E. A8 F4 c: D - ! I% e1 }: _; ~9 O
-
/ {( Y t+ r* g' J" Q0 |% P - BLOOD: ;血量+ h( ~7 ?$ K8 L' [& J- e
- LDA $6000,X4 a4 B7 Q# w$ F' K) q5 }
- AND #$01& ~1 E" M9 ~+ V8 U4 F! `
- BEQ BLOOD_RTS9 V, E0 W- T4 y) W* Q: D: Q8 X. U
- LDA #$7F. D" l- i+ p2 n5 {: O% o8 g) c
- STA $04F1,X% C7 y, Y5 _* q4 L2 H# h) Y, b
- BLOOD_RTS:
5 y( @8 D3 J- a7 z$ E4 r. d6 N - RTS7 \# A3 r1 b% j, x$ X- x
-
; E6 H `+ o! F6 X; z$ b; L* [# T - 1 T5 N! F5 o, J3 R$ v) \ Q! A
-
% N7 {* I$ E- j% P/ p- k -
4 \& \ m9 g2 A) `0 n0 r5 o' W+ Q - .ORG $D29F+ M* @3 D& ?, Z/ R
- JSR $FF80# F; D9 h7 N; J2 u* M
-
" U: j; H2 Y" m8 C/ F+ n6 a - .ORG $FF80
9 Q& |0 {. c/ `: f: s+ s - KILLBOSS_BY_ONE ;BOSS一击必杀
" L# Z! o6 M' A/ Z6 g: @ - STA $0628+ Z+ A4 Z" I2 _9 I% L4 {& o
- PHA
- c' b' _, f, l8 A/ r0 M. I - LDA $6000 e8 ?, F) }" y8 a k, A
- AND #$40
* f/ x! x! C. w1 A - BEQ ADDRFF8E
5 d ^8 d, T3 r5 e+ {. @/ ` - PLA
0 ~. X8 }) L. f" Z: I5 C4 p2 M - CLC ;敌方死亡状态判定
i( M N/ D3 {: ]1 l' Y - RTS
# D c! H5 j" ]0 M1 _# K7 s$ u - ADDRFF8E:
$ |, B6 z$ Z. c: g* ^ - PLA
* O9 u; ^4 k. z - RTS
5 G3 z/ a7 m( y" c) [
1 z5 g, X" n! Z' s2 u# y( S: {9 ]% `6 L
4 H/ F" I0 H" ^& e7 N x- .ORG $D151
8 Z8 X0 r1 {$ S5 H - JMP $FFA0! X X2 a9 `, E/ i: D
-
2 } L* ~, o4 i; p C - .ORG $FFA06 C7 N2 D U C6 Z; i' C7 k" z
- KILL_BY_ONE: ;杂兵一击必杀5 S0 R; ~3 s4 c) J: T9 U
- STA $0621,X
7 h- Z+ J2 V+ Z+ ?# T3 `8 W - LDA $6000$ Y5 g3 e+ {. Q+ ]1 X% f
- AND #$40
7 o+ d/ `- V0 n6 o4 S+ r0 i0 _ - BEQ ADDRFFAD6 e; W9 h+ L& z" F: U- m8 U& w# N( W
- JMP $D19A ;敌方死亡程序跳转: h2 r: \- q0 E$ t. C
- ADDRFFAD:
* b) K' m: X. P" H% g5 ` - JMP $D154
5 q& ]5 Q( X. S3 l; m -
2 I) L$ z! a3 o8 n -
% Z2 s5 s3 Q; x$ z - .ORG $A7F6
5 m7 }3 d7 p6 T( l! X - JSR $FFB07 M/ v9 S) u2 t
- 5 ?1 l# O, S: J+ r8 b4 b6 a/ r
- .ORG $FFB0 ;全屏攻击
b! R) u1 H; f6 c - PHA
% Z7 H3 d) ~# T - LDA $6000
; j% l! Z, B" m$ Y; M3 }: R - AND #$80
% z9 A$ V) q; |) R8 l6 t4 E - BNE ADDRFFBD
$ k8 \; }' ? O& V* O - PLA
: u7 G j1 Y! r$ C; }& _ - LDA $00152 T" m4 G$ ?4 k5 b: \7 z" @
- SEC, Q/ p# ^' R0 S5 q4 [8 P
- RTS/ r% ?4 @6 k% `$ s
- ADDRFFBD:
* M, c' u) u( D! @. V/ r$ b - PLA& y y7 P7 w X( Y w# U
- JMP $A826
/ q0 E. `; F8 g" r5 T2 C* X3 r! P -
2 S! M/ M6 t1 P+ x) b7 k - 8 T" S: T/ J% n; B, D- D7 T
- . k6 `* j, t; |7 h2 |6 s2 m* u1 `2 v
- .ORG $AA6A
5 s' u6 E4 N3 n, v0 Z - JMP $FFD0) U, Q; n' l& r) T$ h! `
-
2 A) f% v5 y( v+ h" @, M+ o& | - .ORG $FFD0 ;敌兵动作忽略
3 @: n8 f+ t+ K5 L7 F - PHA
4 `1 P- _% F: _' [" c - LDA $6000, c; c) S& j; ]; }) }
- AND #$80/ ^ m+ C: l4 {! k8 Q3 |" `5 _3 Q
- BEQ ADDRFFDC
; |' D3 L: j" d3 P - PLA
7 c" e# O0 \* W% ]5 x' F - JMP $AA72
+ ]+ ?, w/ ^6 z* `+ q - ADDRFFDC:
p' Q8 D, ]9 r" C - PLA
) I& v. Y4 U. l - LDA $0629,X
) _( W* e* S" b! ? - JMP $AA6D
! Q2 `, k$ W. _ - 8 R8 q% s$ Z* e+ F5 S3 \) b
- ;[FC][忍者神龟3代标题选关程序]
' Z7 P: n1 W; p5 }# V - ;作者:FlameCyclone 2017.4.1; P: p" _1 U0 ~( K
- 0 N6 ~0 `' J/ x' _" u* ~
- 0 x( R( J" E6 k A
- ;配置数据
: B$ ?, l0 ?: ]5 ?3 x$ t* B& m! x - KEY_ADDR = $F8 ;按键地址
2 ]# o P: ]+ m! h" V - STAGE_TEMP = $6010 ;关卡临时地址
q5 e6 \3 u1 |2 B! t6 I+ a- u/ o1 N - STAGE_MAX = $0E ;最大关卡数2 Q3 j0 t8 K3 X. s$ Z
- TITLE_A = $20 ;标题条件A4 U( w9 |6 r' ?! _+ r; E! V
- TITLE_A_ON = $02 ;标题条件A有效状态判定0 B+ `9 u+ J5 c+ j3 h5 p0 @
- TITLE_B = $21 ;标题条件B: R5 ]# I# m0 s8 i* c+ y% Y
- TITLE_B_ON = $03 ;标题条件B有效状态判定
j7 v6 V% q# i8 L4 w% Q - PPU_END = $FF ;PPU结束符4 j# F( \: m% I1 u
- TIME_LAY = $4A ;标题显示延时地址
( o7 M, j9 v& \$ J - BUTTON_DEC = $42 ;关卡减少按键8 z- k$ O3 r- O" \
- BUTTON_INC = $81 ;关卡增加按键
4 N7 U; Q% H. U( x! i - NUMBER_A = $06 ;数字A距离STAGE偏移量( S2 M; }+ `; P8 P( b$ v
- NUMBER_B = $08 ;数字B距离STAGE偏移量# @3 [% M. T9 U
- PPU_ADDR_H = $23 ;STAGE写入地址高位
" U7 D5 ^6 q/ g' y: F b5 U% p8 Q* u - PPU_ADDR_L = $8C ;STAGE写入地址低位
9 b6 v& \" m s |- H3 Q, F - CHAR_S = $A2 ;字符'S'
7 E) |' V5 ?$ H d5 p( c T - CHAR_T = $A3 ;字符'T'- i/ x% r) G% K: n) i. u4 ^
- CHAR_A = $90 ;字符'A'7 d' U U0 r+ i
- CHAR_G = $96 ;字符'G'
- S; y1 ^4 m" X* F - CHAR_E = $94 ;字符'E'
4 g( g7 C/ w/ Y* s. U# n" D N" c - CHAR_SPA = $00 ;字符空格! M& e" N! u% t8 ?
- CHAR_LIN = $AE ;字符'-'/ Q5 \. F! ], Q
- CHAR_O = $9E ;字符'o'9 h* {# ^- D; n+ K: `
- NUM_1 = $81 ;数字'1'
, C. h! I6 ]9 F* S: ~3 T7 F. U - NUM_2 = $82 ;数字'2'
1 p! h& h7 J! @7 y( T2 p - NUM_3 = $83 ;数字'3'
' |# z' d" i* P2 s3 T( m% s) d* K - NUM_4 = $84 ;数字'4'
$ `' N/ n8 \& L+ g$ o2 Z - NUM_5 = $85 ;数字'5'& {# C }" L" v4 @+ e
- NUM_6 = $86 ;数字'6'. Z( P- Y2 g# V6 V* V5 i" [# t
- NUM_7 = $87 ;数字'7'
8 ?) c# E' f- t0 S i/ x1 ]$ g) v - NUM_8 = $88 ;数字'8'
8 `: x% x. k+ M# G2 m2 e - NUM_9 = $89 ;数字'9'
5 Y( v. k6 p+ s o! Q, a; g - NUM_0 = $80 ;数字'0'
# d: U, [( S0 ]. g, T - 3 K7 ^7 p- u8 P0 Y' x
- .ORG $F82A
5 W3 K, ^! E4 \ - JSR $E700
, o# z! |# b0 u - ! Y' X/ J/ a- F0 k% S
- , }1 m! N$ e3 q0 b9 T7 j1 F1 n
- .ORG $E700
' E! P8 s; o6 P) ]: K -
9 n- A ~) z& B# B - STY $4014 ;补上覆盖的精灵写入指令 B2 C& M: U; U S
- PROTECT_DATA: ;数据保护
, z7 C; C* y: h; W - PHA ;数据保护开始# I& r' ~: J h! E# p$ p
- TXA
# s F) R0 b, A; h - PHA/ W1 {9 z$ z! f' q
- TYA
2 D0 y- V# K+ t1 [8 C6 A2 z8 H - PHA ;数据保护结束, K8 Q$ O" Q7 K+ U+ [, R' w: h9 B
- LDA TITLE_A: F0 T" ?; t; Q& R
- CMP #TITLE_A_ON ;比较是否为标题画面0 a S2 I+ C" [* g/ L
- BNE RET
% t) C2 Y' g g( q3 w3 Y0 U - LDA TITLE_B, z* A5 E# y2 F+ K
- CMP #TITLE_B_ON ;比较是否为标题画面
' Z. D. {& M. c+ j. h8 _6 a5 U8 q - BEQ PPU_STAGE8 s- ]8 O0 A* n' Z d! v
- RET: ;恢复数据
$ |4 ]9 I0 h# H7 r - PLA ;恢复数据开始+ X M" _, j; [. J0 t9 T
- TAY% X5 E+ r! ^; A$ d# P; ~
- PLA5 ~: ]4 w" g E( U% _- x
- TAX" E3 j- O0 D8 k& q# E# j" [
- PLA ;恢复数据结束' D$ P3 w' D4 T$ @- ~4 j+ s& R K7 D
- RTS ;返回
$ A1 U$ o+ c0 m+ Q2 H - PPU_STAGE: ;字符STAGE写入程序" a( ]1 l9 d7 t! Y
- LDA #PPU_ADDR_H
0 A. I$ s$ v2 k; P. _$ P - STA $2006 ;设置PPU字符写入高位地址
. d- U3 Y6 c6 q+ D# V - LDA #PPU_ADDR_L+ S# n% V$ u* _7 T9 q: P
- STA $2006 ;设置PPU字符写入低位地址8 I6 O Q, v! X& A
- LDX #$008 A0 D( S( C: o0 @( {/ E+ R
- PPU_STAGE_WROTE: ;写入STAGE字模
- s7 x) g6 y: t! }* M! p' y - LDA STAGE_DATA,X
5 I- u# ?: c" ]+ I* X - CMP #PPU_END ;判断是否写入结束
G: J! k3 m w9 H8 K - BEQ STAGE_CMP
m( E5 G+ B9 f# u* e - STA $20073 m- M6 d2 T" P% K
- INX# C2 p: T$ d# t; i! ?/ g" T& s
- BCC PPU_STAGE_WROTE
2 z7 n g2 M, A$ s9 T; u1 \ - STAGE_CMP: ;选关操作! x8 s3 G' e$ `1 I
- LDA STAGE_TEMP
1 o: E& i" v% {/ m7 O) u: E - CMP #$FF ;关卡数据初始化条件判断
" j, q, a& y8 Y' b& e1 i - BNE KEY_B
/ F0 A/ a, o7 G6 |) _ - LDA #$00! C2 N6 b3 P( ?. _& ~
- STA STAGE_TEMP ;关卡数据初始化
" v* U' y. O& {: z% i1 x - KEY_B: ;关卡减少
/ F) h+ ~1 a' T& ~( x+ f3 r* a - LDA KEY_ADDR
$ D: D5 j9 \! G- H8 g$ t0 G! H - AND #BUTTON_DEC ;按键B或左减关- t7 L- d9 b! [5 \4 h
- BEQ KEY_A
: @* L' r4 f4 `5 n, V - LDA #$FF, u- c1 M; s' a- r$ o
- STA TIME_LAY ;重设标题延时& U; L' E3 _- B; @- y" ]
- LDA STAGE_TEMP
9 Y' W9 s* {6 _( k+ Q% p - CMP #$00 ;关卡比较7 n+ _9 L! N. c! f) r
- BEQ KEY_A
1 n. B5 q$ n' k3 `: n# ~6 E - DEC STAGE_TEMP ;减关) p; {, X& W& ]. c/ m( l% P2 g3 t6 ^
- JSR MUSIC ;按键音效0 Y- ]6 k3 s, y J% {4 f1 q) ^( N
- KEY_A: ;关卡增加" c$ R$ | `3 V7 j1 S" R. o
- LDA KEY_ADDR
" C# O% {/ O/ o B/ r& }* } - AND #BUTTON_INC ;按键A或右加关/ W1 L6 N a [4 a
- BEQ PPU_NUM_WRITE9 Z* ?( Q/ i* p+ ~! z
- LDA #$FF
; X8 m& r) ~1 |0 I1 Y' l - STA TIME_LAY ;重设标题延时
2 b5 ^4 v( ?/ a7 l! z! P! _ - LDA STAGE_TEMP1 b$ Z& i3 W/ d5 U, F
- CMP #STAGE_MAX ;关卡比较0 ~4 R e% y. B- p6 J
- BEQ PPU_NUM_WRITE
% b0 R: D* ?. [+ v9 e% z - INC STAGE_TEMP ;加关' j ~: E1 L: H9 F! X
- JSR MUSIC ;按键音效
7 W5 K/ _ }: o$ h e - PPU_NUM_WRITE: ;关卡数字写入地址' W: y2 ]! Z; U. D8 ^* A+ C
- LDA #PPU_ADDR_H2 }7 |/ f3 p% n( H- y) U
- STA $2006 ;设置PPU数字写入高位地址8 C" b2 T. k+ p" C3 H. |
- LDA #PPU_ADDR_L* X2 c3 u9 x( h: p+ v Q* H
- CLC7 S/ | X, T7 j: b
- ADC #NUMBER_A
! j0 Z! D6 i9 Q# L - STA $2006 ;设置PPU字符写入低位地址/ V0 E8 s) G! C( i! W
- LDA STAGE_TEMP
* X3 V: ]) d& Z - TAX% V3 ?" Q1 z% ]* m( P
- LDA STAGE_D1,X ;写入数字
# b# ?( l! Q& Y$ l( h0 ] - STA $2007
" Y% B X1 D5 R1 |' R - LDA #PPU_ADDR_H7 v( T2 v/ Q; s9 u6 w5 `& b
- STA $2006 ;设置PPU数字写入高位地址9 J' G/ x+ V4 M
- LDA #PPU_ADDR_L9 c9 C* Q" R1 j1 T9 j
- CLC& D- u4 p9 C% v
- ADC #NUMBER_B. |* Q* l: ?; y' \+ H5 w; Y4 i7 R& D
- STA $2006 ;设置PPU字符写入低位地址
, G4 H, }, y/ @) Y - LDA STAGE_TEMP
% o7 P2 S; L7 j% {$ d+ S - TAX
" X& `5 H- i+ k# Y, n# J - LDA STAGE_D2,X ;写入数字/ o' C0 B; o+ J
- STA $2007
) \$ @$ `9 W. P+ a - STAHE_WRITE:
0 \2 }/ j; m( k - LDA STAGE_TEMP( R' y% Z4 B O: \
- STA $2D ;初始关卡写入
0 T! u7 {+ f1 |/ n - PPU_RTS: ;恢复数据
0 j, s& Q& \ g8 ], { - PLA6 g9 T# V' b. s: |! f
- TAY6 E8 `* V0 M1 |& m% ]# T' y
- PLA" ? s' w+ B* Q3 Y$ t2 P: b
- TAX
/ @1 y0 {9 Z6 f* T: _ - PLA
# m/ F5 k7 o3 c! {+ \& B9 u - RTS
% ?7 l# ~: A( b* L x -
1 X- D) k- j8 ^6 E) H; }) u" E* v - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据% v% Y& N: I+ j
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
/ G& A. w6 H$ u8 B
+ Q; f* L& b' {( ]! X9 M) |- STAGE_D1: ;关卡数字
, q; Q! f2 f% p6 z - .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 O+ i$ w7 G9 u8 E7 Z' h; y
- 5 q6 I' y5 Y( E% Z
- STAGE_D2: ;场景数字
; }+ ]) u* q" X f$ c/ ?+ s - .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. N# e7 H3 S1 z9 [, |
- : @1 O& h. O% o( j( q
-
( p* g1 u/ A8 F - MUSIC: ;按键音效: |, I$ V$ N$ `7 }3 ^& N
- LDA #$3B ;音乐号
' ]+ ~: P' R! Y. j L0 a- o' [ - JSR $919E ;系统音乐调用: i6 s. L% ~; k' e- b
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
6 u* T' K* ? r" w2 @! X' S* v: l 5.生命加满: 暂停后,按下键切换;$ ?7 ?) P6 p0 l/ `
6.血量锁满: 暂停后,按右键切换;
3 s. O$ |: [3 U: }- t ]2 e( Y
6 w! a- r$ v* n6 w( o, _$ v$ l L' V* ^
) q- ^9 C; b5 i: x% Y- z # ~1 C) J( ~7 b% g ^, V$ T
, j9 l; A* P) v% C. j, s
4 w2 X" s" C) HFlameCyclone.ys168.com2 _, C9 R% ^6 Y7 T' v
www.nesbbs.com
/ F" _8 _7 K' c2 d5 f8 a: ^# U* `- q$ E1 i* Q8 k0 B
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|