|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
- s. V2 O/ j$ P( z4 P# s4 `/ Y+ K1 l
i9 n- |6 z2 K: {9 f6 O$ \[FC][忍者神龟3][END选关]
$ q# j% U( S% t
/ z v, E4 j2 `# D7 D时间:2017.3.306 J3 H; P8 l( |
作者:FlameCyclone w3 x2 t; g R3 J) [' r) d$ j
内容:3 {/ z% d, {1 U+ e2 ?4 q
1.关卡选择: 标题时,左或B减,右或A加;/ D: F5 L4 Z! `0 H; B, t; a( i6 R8 e
2.全屏击杀: 暂停后,按A键切换;" P! l! q( Y" `! m3 G0 S
3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
8 D& w# h' Y: b) A' r3 I/ q1 S - ora_data:: h* s. u6 X( }! B% T' a* S+ a
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
1 j. p k/ u5 T# o" h/ Y1 O - and_data:5 H* V3 X4 b. e6 K
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF+ z1 Y: @: d! h+ t1 v1 z$ a
-
. `& @& [. b) r( A - button = $F8+ t7 K) ~- W$ z. p
- flag = $6000' H( d( Y2 \4 { p( Q+ _
- pause = $0045
* x0 B6 x# t0 y& d! B1 L$ I
9 P: j9 U4 ~+ R* _, }& |7 c" O. R- 9 O/ B6 ^9 p# Y7 F" w6 x5 `/ y
- .ORG $F90D
$ y( o7 {9 A' z8 ] - JSR $FEC0
+ w1 A4 X: ~4 B8 B- I4 Z - * f! B: P2 C E' m5 i
- .ORG $FEC05 v7 b2 n) r; A U
- STA $54,X
& F: B. y' A/ o+ J$ H/ T C - STY $FA,X+ P/ U! a, C- H* l, T! t$ L7 G+ Q
- PHA. L: y w8 X. Y# I0 c3 ^3 S4 [
- TXA
. u. r. _5 n- |, {1 s- ` - PHA2 a; U# r2 V1 U2 _' k! ]
- TYA
" ^0 K" A; r& _/ j1 Z, U - PHA
5 J2 i' O* t% G& S4 j - JSR KEY_OPERATE
; q1 N) K' r! E9 e6 }6 l4 K# N0 J9 N - JSR INV. h, h/ B( g& F! C( a& Z" l
- JSR LIFE/ t$ X! |: B$ I+ S
- JSR BLOOD
1 Q- Z3 t q, u* j - PLA
: d3 O" v; s! C1 |/ b - TAY+ k9 n d. X8 D( l2 m
- PLA
3 ?1 J9 c& }) Y$ \5 k8 `8 F2 ` - TAX
' K+ q4 P) |! s5 j# f+ d! g - PLA
m- ]2 ?! c2 I+ T X7 m - RTS I4 ~3 w7 A, z G/ @6 b' I
- KEY_OPERATE:
% F i$ }1 e* [ M% M8 |2 X - data_protect:& X3 U* u$ m. ]. R# U+ y
- PHA
2 k& T) M6 |+ q7 w7 R; R - TXA' R$ _; e' Q0 o/ ]. W" e9 @
- PHA+ Z- s8 S. l: Y
- TYA. }/ O8 z* H: j( o6 R1 z
- PHA! x) w) p/ Q. j2 S1 ~( O1 f2 o
- ! f) s$ _) ~) u8 O4 G; n$ T
- FLAG_CMP:
s8 ?+ g4 s6 Y4 W( L - LDA $600F
1 U3 p& V3 ]! |2 z$ f% c6 O - CMP #$7F ;标志数据初始化条件判断% U9 U, [1 g! ]' f/ A
- BEQ pause_cmp
) s2 n9 l) ~4 o2 t Q2 h" E" ~; Z - LDA #$80, b* J+ N& P" u- u
- STA $A001 ;6000-7FFF写入启用) w9 A4 z) a9 d0 t. a! b
- LDA #$00
$ `9 j) B* c) {( J$ a! l - STA $6000 ;数据初始化
9 l* ~7 C5 S. {" ? c( C, Y9 q2 ~ - STA $6001 ;数据初始化
' ~! o5 y: \ |( p# v/ L - LDA #$7F$ [0 f- |' t( M; J5 q" Z, W' h6 A
- STA $600F* c3 q) M8 p5 n+ I$ G
- pause_cmp:
! j( ?) O1 i- i. t& _/ \ - LDA pause( P2 x" K4 l$ ]. y8 M' e) Z
- CMP #$01
# A* H4 f4 {& K: |( ? - BEQ button_press
" f+ s5 k% y5 v5 g - PLA
8 U( R o6 a- R% f4 h - TAY
* X- G8 x! a" ^9 K6 D/ Q2 U - PLA
% n) B6 j k" ?. m0 h. h - TAX
% _- j: v& i- ^/ O6 C - PLA
* |" D3 U$ e W& m# Q& D - RTS* {1 @3 T, d* c0 h% H7 [- H& Q/ r
- ; s" J% _: k$ ^' P2 `
- button_press:
* `; i& h' O. r0 c: Y - ini_Y:) H% f! K' y8 v8 @ G! K. K
- LDY #$00
/ f1 p: R' ^) x* T0 Q+ E1 d - button_cmp: z, w Q' s5 F3 l) n/ K% Q
- LDA button,X6 P; ?' a' C" W: F: M5 d% @
- CMP ora_data,Y
; X" T; z) c! h% @/ {+ [ - BNE count_Y_cmp
0 A8 e) H% ^0 B4 G. B" Q! V - flag_cmp:: k- G2 H- G7 y* y
- LDA flag,X3 R0 {9 P9 J* O7 x
- AND ora_data,Y) v! r. D3 h$ c( ^
- BNE flag_and2 @+ e3 _- R% b' k
- flag_ora:( @2 K. o! t0 S4 o
- LDA flag,X
. x' p1 B5 a% S) n( V/ A/ A - ORA ora_data,Y O$ i2 v& I+ L2 i# {
- STA flag,X
. \, N5 f5 H, P- z' y6 X& e - BNE count_Y_cmp9 a: z3 u) v6 i! W S
- flag_and:
, l. g- S) P: ?% k0 Z' _8 a- y. ?9 Z - LDA flag,X
' S' A( H- K5 i; B - AND and_data,Y
' C6 j3 r, w, s/ I - STA flag,X
7 x: |9 h; x8 t9 q& N2 P1 |% g - count_Y_cmp:
7 i8 S! Z+ u& v7 X, j4 n; Q - INY$ E- Q! j$ D9 k/ d% G u- V
- CPY #$088 s! R+ K$ m1 e Y+ J
- BCC button_cmp2 W \; R" C2 d: K( d, q
- 3 g2 n9 l' b, [3 F
- data_extract:: {( ]& @: f4 {7 H* G3 r: ]
- PLA% C5 p! P- f9 V5 S7 C" n
- TAY
& D! R, k6 o8 }9 M6 F s6 c - PLA3 s& K$ x# Q7 |- X6 ^# _& O
- TAX
, U _( q4 b( h - PLA$ b: u: |, ` a' c
- + Q6 }" \* Q9 t& A
- return:
( U' O# q5 I, l' F* T. U - RTS8 R( [' y+ M2 e0 n, U0 V1 F8 t* T5 D2 n
- ) }4 t% ~0 w' H: Z2 @
-
( O1 J+ M0 w& f! P - INV: ;无敌
: P# ]+ U6 ]" U, O - LDA $6000,X; }! r' _" Y% g* x- A1 g: v6 |
- AND #$08
- |0 @/ \0 ~6 b. B- ~ - BEQ INV_RTS
" Z# x: N8 s. i) c/ J& }4 ? - LDA #$05' c; k: R; t% m3 n& |+ [4 ~
- STA $04FF,X/ s/ x" d0 I+ [+ d! F
- INV_RTS:# m( [1 ~: `' P; v G8 s2 h
- RTS
, ]8 X! p! K4 M% A4 ]4 z! \# j- ^ R
% v- I# b. p4 Z1 d; ~; M- W- , k- Y5 l+ x- v& i0 J
- LIFE: ;生命. J, P/ k1 {) F8 `! j" M3 Z
- LDA $6000,X
- D, ~, h4 w8 [ - AND #$04
% u8 C! ^( t0 M$ f8 M M - BEQ LIFE_RTS: f% u+ F) m! J' L
- LDA #$09! z$ c1 K: _9 |3 G8 ? L6 t0 n2 N
- STA $6A,X5 C1 i3 Q7 U0 L& k- i- x6 {/ v5 y
- LIFE_RTS:
; Z! E* S' y3 ?: d+ g4 ]5 m( m! { - RTS
, {7 K& `- `% ~! _9 c- o
0 X* [* m7 e* _) o8 e6 \9 |4 W. \- 4 ]. g- z! G& H; L$ |
- BLOOD: ;血量 |! N% O( \0 P/ x! O( l; `' U" I
- LDA $6000,X
* Z& T0 y- o! `& z3 ` - AND #$01' R( {- @# |/ [5 q' I/ J5 D
- BEQ BLOOD_RTS: X# F- v& f7 E. W
- LDA #$7F
% A+ p8 K0 p1 Q: ~# A/ } - STA $04F1,X) C+ P* {7 C6 u4 l5 r P- l
- BLOOD_RTS:7 ^5 C3 V2 V- V' p
- RTS
) S3 W) A" M( B8 M: f -
! l5 T% q; J0 e3 E, P) f -
1 I$ ?6 S* K5 n! O3 n# O8 F; b -
& q$ a9 h6 x+ H* V% R# W -
, U+ ^' ]$ B+ J6 F: R& q6 L/ ^/ { - .ORG $D29F9 e$ k, j1 G- p$ z+ M6 a3 T
- JSR $FF80
9 L) i7 _1 j$ \) J - {& |! I ~' A6 a: t
- .ORG $FF80
! W, R& W2 c! p - KILLBOSS_BY_ONE ;BOSS一击必杀! {& g& ~ M% q3 y# b" ^( S
- STA $0628
@* d6 x2 S* p/ y1 n( B - PHA
7 z8 ^ e: n' l! p; O2 P! i - LDA $6000
& Y) X$ }: ^ a" U$ [6 z* S - AND #$40
; v7 B, D. s8 u/ b: ~/ A - BEQ ADDRFF8E U, x7 G; t9 ~1 F |+ ?9 F& w( a
- PLA. }% w6 t4 \. \) |0 v
- CLC ;敌方死亡状态判定( Y, P2 q) w* M4 s" s! U$ S
- RTS) I% {+ {! e/ T, _- u, i
- ADDRFF8E:4 R. E- O0 K ~1 P0 I/ N. D
- PLA9 }5 ?- k" H& s; q* w& D5 U
- RTS. u0 c2 }1 v& g% y* P) Z
- 5 G5 `% L7 t3 I) V8 L1 r8 {- H
- & X5 W, ?3 Z, K- x
- .ORG $D1512 K, f, `% ?, |0 O+ V
- JMP $FFA0
6 r. K: k0 K2 } Q# Q* ?) ~" l -
5 o8 ~* Y0 Q. N! [ - .ORG $FFA0
! n3 M/ X* G; W# X) X - KILL_BY_ONE: ;杂兵一击必杀0 R, h4 n K3 N( v" X3 Y
- STA $0621,X* w2 j2 C W1 ^& h( `& t+ P
- LDA $60006 I, M* N/ l9 T5 ]4 p# k
- AND #$40
- y) y! B( V v: p2 | - BEQ ADDRFFAD4 _4 D6 g" u- P8 I7 ?
- JMP $D19A ;敌方死亡程序跳转
5 u) R$ I/ j' g8 n5 h% F$ H$ `8 X - ADDRFFAD:
2 k0 O, r! ^4 O$ }" w7 r- d0 V - JMP $D154
4 n& s5 T0 k" Q+ {8 ?. M. k -
3 F" I- l) _* C' N( e- N; n -
# h' @5 c% Y( E - .ORG $A7F6' J! {) x) }' @/ W6 w% N% @/ ]
- JSR $FFB0+ `) ~* a1 I) z- z9 M# y$ i1 k
-
: ]* o; E5 B& Z3 q$ b3 W A - .ORG $FFB0 ;全屏攻击
: k( O7 ^* k$ o - PHA
& D' k: U. w5 D; k - LDA $6000, E ^# J( d) N7 R) {
- AND #$80
* K# z: c% g, x$ k4 I2 v( c" h8 W - BNE ADDRFFBD* q" }. A8 t# S$ {9 X: N+ }
- PLA
, r2 q1 X: f+ c8 Y - LDA $0015. q3 a8 h( x1 K" H
- SEC& K: f$ [. h- }8 }
- RTS
. E* Q) g% [% d; ` - ADDRFFBD:; X' ?" U) j; z" t. ?# h
- PLA
% N3 _ ]6 r, h9 s2 P! ?6 A( R0 s; ^ - JMP $A8268 f0 C+ ]7 `5 y1 T
-
+ u' H' V0 V3 j6 `- t - 7 R# ]1 ]' O+ P
-
# K: z1 }% A( [6 w- R1 M" V( x& d; n - .ORG $AA6A
- Q/ Q6 d. C3 h @8 \; u5 Z/ X - JMP $FFD0
: U" E4 ?0 B, H% z5 [6 [( d/ N -
" [5 O, H8 X" \% G - .ORG $FFD0 ;敌兵动作忽略
' h( c+ ~6 [$ V; H1 U/ X - PHA* K' R) T/ f% y
- LDA $6000
9 P% K/ X) _9 V& E( r - AND #$800 L( {; f+ t( O Z1 g. g
- BEQ ADDRFFDC
; a! U' s; q: s$ d - PLA% B4 c U) ]7 t7 t d/ p; z
- JMP $AA72
3 u" f e9 j* b3 i( j - ADDRFFDC:
9 P8 k, x! J& X" X4 o - PLA
4 [9 Y0 t$ E p9 G- {8 }$ O - LDA $0629,X
, C J V. E+ E; j& p+ V - JMP $AA6D8 G- \6 I- e# @- O6 y% g9 H
- $ K& O7 k( r) R$ q
- ;[FC][忍者神龟3代标题选关程序]
; {1 V. t- d/ }( y9 N* Q) K& u - ;作者:FlameCyclone 2017.4.1
, l8 D9 A; y' o9 J
) o' b7 k* w3 \- b% S! E0 k) _7 p- $ z% O: L" G; A* [- T! }& \
- ;配置数据/ I) r$ G, c. B6 N. w8 Y! g
- KEY_ADDR = $F8 ;按键地址6 z& G& e( o6 d( e$ |. x8 F. y7 x
- STAGE_TEMP = $6010 ;关卡临时地址
: c1 }, L8 Z5 {7 W0 v - STAGE_MAX = $0E ;最大关卡数! o( Y" o0 x5 t) P. A4 Q
- TITLE_A = $20 ;标题条件A
$ r0 Z+ p/ ~3 Y8 f q% { - TITLE_A_ON = $02 ;标题条件A有效状态判定
; x6 @$ N6 j) h2 u( b - TITLE_B = $21 ;标题条件B
* A( @4 Q1 w# D0 t) |7 @# A - TITLE_B_ON = $03 ;标题条件B有效状态判定* d u! b b7 V" x, e
- PPU_END = $FF ;PPU结束符* S+ u: j: H1 g1 p2 U9 N$ Z9 s3 r
- TIME_LAY = $4A ;标题显示延时地址- r! x) X& [2 N6 ^, K& t' J" o
- BUTTON_DEC = $42 ;关卡减少按键
. w2 k6 G) P8 ~ - BUTTON_INC = $81 ;关卡增加按键
' W) E6 Z( _2 ~7 v8 q3 N! R# K - NUMBER_A = $06 ;数字A距离STAGE偏移量3 W8 A" ?: G4 d
- NUMBER_B = $08 ;数字B距离STAGE偏移量3 `2 Y4 P+ a; a& m1 h2 y9 {
- PPU_ADDR_H = $23 ;STAGE写入地址高位" ~9 i" S5 K% A
- PPU_ADDR_L = $8C ;STAGE写入地址低位
: p2 S. r3 F# Q3 q3 W - CHAR_S = $A2 ;字符'S'
b- L! U3 f6 o3 _+ i% ^. j* e - CHAR_T = $A3 ;字符'T'
- |: e; C8 Z+ x( G% r, Q& h - CHAR_A = $90 ;字符'A'0 {+ a1 a2 j( i4 e3 P
- CHAR_G = $96 ;字符'G'
+ L% a4 A# x3 \1 c8 M0 X1 b% J - CHAR_E = $94 ;字符'E'0 @( e+ i$ w8 @4 K6 |& n+ O5 c
- CHAR_SPA = $00 ;字符空格
1 |- ^% m+ E! b6 i - CHAR_LIN = $AE ;字符'-'0 ~& ~& L8 w' V; W
- CHAR_O = $9E ;字符'o'! s8 B6 ~5 R: O H* f) K
- NUM_1 = $81 ;数字'1': D% j3 Q- k8 r0 X k: ?6 h2 K0 A
- NUM_2 = $82 ;数字'2'9 R1 H; t; h: S) X' v, ?$ C$ c
- NUM_3 = $83 ;数字'3'
6 O" s& {0 r6 K* N4 z6 |9 q - NUM_4 = $84 ;数字'4'
" r H) E( t& y5 l1 I - NUM_5 = $85 ;数字'5': R) J7 u* J% H1 s- H4 F
- NUM_6 = $86 ;数字'6'* k+ @# U9 w g5 d7 s3 D) z p' ?" F
- NUM_7 = $87 ;数字'7'2 M) T* Y/ c* @8 y7 t' l( J
- NUM_8 = $88 ;数字'8'7 w) i! e! v+ n. y7 Q. \) X
- NUM_9 = $89 ;数字'9'& k, k7 O( l" k8 Z5 f" l
- NUM_0 = $80 ;数字'0'
9 ~# t ? i4 r& t, u V - 7 @7 B7 }& @/ V8 h; x
- .ORG $F82A
1 n) ^7 K" i0 p. S* j! A$ M - JSR $E700% @8 T8 m/ b$ ?9 e# W% N8 ?% K
-
5 }+ A( h7 o9 B3 }1 V - ' k! }7 u* U* D$ g2 j* B
- .ORG $E700* \: e7 M- v" R* Q
-
% m) ~1 E2 g$ C - STY $4014 ;补上覆盖的精灵写入指令
: Y) p, t' }8 l* _8 l }; E - PROTECT_DATA: ;数据保护# P, i6 e; O: d+ Z K7 `- u3 `
- PHA ;数据保护开始
4 p& R K: B0 Z& B5 n - TXA( V d6 R/ N/ d5 \ g$ k2 y
- PHA; _* @: \$ ^$ Q' K
- TYA8 b8 O% o+ |! r8 I( U$ \9 ~( h8 B& W
- PHA ;数据保护结束
& M$ P% B1 M+ H, V1 t - LDA TITLE_A
1 k/ Q3 r% Z% o* K. q' y* L - CMP #TITLE_A_ON ;比较是否为标题画面0 C: D1 K! k1 O8 I6 t# {( _3 J
- BNE RET
1 w9 }' ?# ]4 {# a; X, ^3 i - LDA TITLE_B
( ^' R: l& R3 L6 t - CMP #TITLE_B_ON ;比较是否为标题画面7 h4 r3 K+ g6 _" h9 x; f
- BEQ PPU_STAGE
9 | N5 |' f6 t7 R/ ^+ C - RET: ;恢复数据* A4 }: w2 U& _! v% q
- PLA ;恢复数据开始
4 h' |" u, b" u - TAY
' `4 k& J% e, P5 C* `$ B. g - PLA$ U W6 M3 w+ d9 v% ~+ ~; E1 \
- TAX
: Q, K1 x, X) U5 v$ c2 Z - PLA ;恢复数据结束' ]0 t/ |2 w+ k2 u( N* q$ _
- RTS ;返回
! L/ w# _# [- t p5 {; j - PPU_STAGE: ;字符STAGE写入程序
S& @- ]# ]8 `6 R, N$ O - LDA #PPU_ADDR_H
: a. N t( ]& B- w' H - STA $2006 ;设置PPU字符写入高位地址5 o# }; i' t: y. p: U
- LDA #PPU_ADDR_L
+ S e" F2 m5 l7 q8 r9 l - STA $2006 ;设置PPU字符写入低位地址& l+ R) I5 g" r6 t
- LDX #$005 U* ?$ h# I: S9 ~
- PPU_STAGE_WROTE: ;写入STAGE字模
/ h- X4 j w% [ - LDA STAGE_DATA,X5 [3 q5 w" ], Y5 N
- CMP #PPU_END ;判断是否写入结束
& k9 r6 f4 o; V1 @' N - BEQ STAGE_CMP
' q- W7 f! ]0 l1 W - STA $20074 p" M% y" E! o* w& X
- INX9 F1 d" R' i4 X. o6 q
- BCC PPU_STAGE_WROTE: x( K/ G/ M$ N" N& M6 S* V
- STAGE_CMP: ;选关操作7 O% R& o( P* Y' f, V
- LDA STAGE_TEMP
: g& `4 g$ P" v" [/ |" o - CMP #$FF ;关卡数据初始化条件判断 S4 ^( j0 c6 K: U: y3 W, |
- BNE KEY_B3 s; l: I) C5 l- B+ U t
- LDA #$00
7 Z; f2 z2 b! z7 {- q - STA STAGE_TEMP ;关卡数据初始化
" W R3 K t% d1 [ - KEY_B: ;关卡减少
/ A1 U6 g+ P% s" [! ~ - LDA KEY_ADDR
l' M7 ^2 ?8 ?, } - AND #BUTTON_DEC ;按键B或左减关
8 l* I5 \) l. W3 a! G: e- b( l - BEQ KEY_A6 y9 W' h9 w& `7 U3 K! P. s7 _) i
- LDA #$FF" r p' T8 I0 V+ A+ T K. N
- STA TIME_LAY ;重设标题延时
2 L! \1 B& B& ^' j& v6 M. N/ F - LDA STAGE_TEMP
7 d" b% z% x* e - CMP #$00 ;关卡比较
4 d# {0 I6 v3 f$ J - BEQ KEY_A* H# G0 R- z4 T. s1 Y1 E. I) x8 z l1 Q
- DEC STAGE_TEMP ;减关
$ [9 ]7 W; U* B - JSR MUSIC ;按键音效
8 K3 q" O7 N! G- C3 D: ^) C& `5 { - KEY_A: ;关卡增加
& g8 O8 Q; K( r. ]0 z0 s* a - LDA KEY_ADDR& C6 ?# Y) V) r) z/ H3 ~1 x# ~
- AND #BUTTON_INC ;按键A或右加关9 J+ I$ z" `7 Z0 Y' ?
- BEQ PPU_NUM_WRITE, G8 N7 z8 X2 F" m, |$ w
- LDA #$FF
I6 |; u2 C5 X# ?) n - STA TIME_LAY ;重设标题延时7 I* h5 E" k, i4 F; V
- LDA STAGE_TEMP
8 K) z: C$ s* i8 h) w; @ - CMP #STAGE_MAX ;关卡比较
. J. L2 P- q) _# M1 x - BEQ PPU_NUM_WRITE6 A9 |2 e I8 Z8 N- j
- INC STAGE_TEMP ;加关
# ^, y1 F. R( F; @4 K) l. W - JSR MUSIC ;按键音效# F2 D5 E& ?2 z) J% u: Q1 ^
- PPU_NUM_WRITE: ;关卡数字写入地址; N( W" K% n r% G9 H
- LDA #PPU_ADDR_H
: t8 J! i4 v L; d% a3 h - STA $2006 ;设置PPU数字写入高位地址
& V! R6 c4 B! O H2 g- t; O - LDA #PPU_ADDR_L; \% W3 B; {9 p* `1 E
- CLC
9 d" R2 [4 `' S( \' {* h4 E - ADC #NUMBER_A8 P- T. \' H6 K# x
- STA $2006 ;设置PPU字符写入低位地址
3 i0 ?. I) ^- S0 s3 p4 U1 z0 S4 e - LDA STAGE_TEMP/ C' m8 V5 l& m6 P7 y( \
- TAX
5 E; n; y1 p9 R+ Q - LDA STAGE_D1,X ;写入数字+ Z9 ?) b6 {* ]: o' M2 q
- STA $2007; R2 R/ r8 Y( L# T! d
- LDA #PPU_ADDR_H! x# I; X( d" z% ^6 h5 W% S7 j* S
- STA $2006 ;设置PPU数字写入高位地址3 @& o+ Z/ w+ s9 l* U- W0 @7 k
- LDA #PPU_ADDR_L
4 `; s- K$ z+ l5 G. O4 h" h - CLC
! _" |: t; @" s/ `9 V6 K - ADC #NUMBER_B
/ j3 Z- p/ I" v6 {% ^7 Q4 u - STA $2006 ;设置PPU字符写入低位地址
7 q% K" A; o# p+ L! | - LDA STAGE_TEMP
: \3 K- ?- S& `# ~8 k - TAX8 x. w `: N4 r0 `
- LDA STAGE_D2,X ;写入数字 l7 O. n4 y/ \+ t4 p5 ]4 ]1 l
- STA $2007
9 L k! {% B: z( N - STAHE_WRITE:1 B9 e% ]/ M( m5 h: C+ f+ p: M
- LDA STAGE_TEMP
( ?" Y+ N7 w# [; j. Z - STA $2D ;初始关卡写入
6 M9 D. f( h# G) C& _/ M - PPU_RTS: ;恢复数据
; G( l' z5 L- M1 ^; B$ L- y0 h; B4 { - PLA
. _2 S6 Q; P; ~$ u - TAY( {1 a- ^# F" Z4 U
- PLA. j% K% U& n3 N
- TAX6 r0 S9 o$ J: x* c; L. R' }
- PLA3 |, b" X. Z! H" }/ `
- RTS
3 @6 t9 f0 R. S, ^1 [ -
% y: C8 X% ]& O9 z" w3 J - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据 |9 b: p% c5 [$ D& @9 B
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
+ x7 e$ h9 Z( R# v, a+ T - " N+ z7 o# {9 |5 V8 A
- STAGE_D1: ;关卡数字
, Q& Q$ N& E% [8 X R - .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
/ l7 M: G% Q [/ E% r6 T7 r# @: K
) w! R8 q) U& ~: H4 x- STAGE_D2: ;场景数字5 p3 a* }8 `2 N, r, l% m5 y- o2 x
- .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% T; H4 u# A- K! u: S' u
- * E5 L4 u; v1 V9 |8 h
-
5 n9 z0 K, q0 Z' I3 h - MUSIC: ;按键音效
4 K, t9 W; A0 @ - LDA #$3B ;音乐号
! l/ M& B4 t U' C( h$ X - JSR $919E ;系统音乐调用* J3 u* W4 a, o/ x& m* d. c3 C
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
# l/ v/ \9 Z6 m# l* i& T$ G 5.生命加满: 暂停后,按下键切换;5 t: ]- I' H/ D
6.血量锁满: 暂停后,按右键切换;/ I* I. d% X& C: a1 U
' O6 e3 m n ^. ~9 i) P+ H
8 x8 v/ V- x" B m- d

% ?- q+ s. I! ^ ' T L$ U! [! @+ W. E
- y' @/ @/ q0 r% c, c
FlameCyclone.ys168.com$ X7 x! g" r9 g$ F! r
www.nesbbs.com
' S/ M7 C; }3 ^+ w$ a3 O% }% H' d$ a3 c3 [; _9 X G
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|