|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 & f" @$ _4 a/ e/ a$ X2 c# A
# j3 {: m& ]& t' n
[FC][忍者神龟3][END选关]
. }( \% X7 x* F! G4 B7 `( V
# A( Y2 C' J- g: V+ M* b时间:2017.3.30
) z& \7 L t2 G: I& h. L作者:FlameCyclone) H6 n5 A' X8 {: P# B
内容:
- v/ B$ ?3 K0 k/ i7 y3 [5 D7 W 1.关卡选择: 标题时,左或B减,右或A加; [+ e( _/ c% j B% ^* o
2.全屏击杀: 暂停后,按A键切换;
" y F8 r1 r- U+ c" |7 X/ T& | 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA09 P" E c O* u1 u
- ora_data:
! f; ~6 u" P6 ^* H/ ^ - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
* v2 W Y' C/ s! ? n0 C - and_data:
0 v5 |# T* d3 Y* [% @% V: Y - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
$ r0 ]2 H- D3 n$ a- O8 q A -
Q, ]& m8 k9 a% | - button = $F8
- E7 m; g I- y' u5 \ - flag = $6000
5 L, H/ W! c4 c9 L2 ~1 W - pause = $00456 O8 H7 m( C1 v. d6 y3 J E
. r4 @, j+ }/ S3 t! l$ F
% X- c. p. p/ W2 B' x) Q) k c- .ORG $F90D
C5 |9 B$ \$ I2 B5 ^+ J - JSR $FEC0
! c) c; F" V! q, ^ -
' d( x% E# g8 W2 ]" F4 v! P - .ORG $FEC0
4 }$ @" @& }: t { o6 X - STA $54,X, i5 t5 R, A8 }" e1 h* q
- STY $FA,X# X0 {% x* m* D9 u# B
- PHA; E( v% r9 m& ?5 z
- TXA
0 d& h+ G2 o1 |" K$ l0 K - PHA& `# }+ g4 c# W' G) g
- TYA- V8 _ F- X) r. R: G4 k8 @ g
- PHA I' }& m# V# q3 s% |4 m% y
- JSR KEY_OPERATE' M0 \4 m6 D& P3 c
- JSR INV
) B, I3 c0 U2 L# _9 ?8 I- I - JSR LIFE
* e3 Q1 d4 U) j! M2 D% ` - JSR BLOOD
; J1 N1 C2 z8 \& O1 ]5 `! _( t* Y1 J - PLA
d4 l( P* B1 M3 z: X/ F - TAY! \+ \3 L" I; o: M, z, u7 [
- PLA+ I, U: G( i0 u' A# U
- TAX( O! ]3 r) L- w" e( y$ O$ S/ h- P
- PLA
, ~- e5 N7 r* m8 K1 \. }6 a0 B9 \- i - RTS
1 I- y6 Y( } B/ S" h3 V/ u/ l - KEY_OPERATE:
" E2 H( [! L5 }: p% z0 a0 Q# T/ Z; T - data_protect:& b- _) a" v+ V) A+ ?6 y
- PHA
8 p* |" W6 w2 u# } - TXA
5 i! W4 L& h1 B; F+ e: Q - PHA4 X& u1 N- L9 G. r0 W6 [/ ]7 g: G
- TYA
9 w$ ^/ `, i5 D" x - PHA
* h( ~( E, g6 R
: N6 a+ @3 \5 S( K- FLAG_CMP:/ \& L. W- B c6 R3 }: x ?
- LDA $600F
* j- q& w Y ? - CMP #$7F ;标志数据初始化条件判断
1 D" C. x& l7 c5 g - BEQ pause_cmp" f- K/ z2 g7 N: s0 E: Q
- LDA #$80
. ~- \1 v% l5 L" M/ | - STA $A001 ;6000-7FFF写入启用9 O6 F8 `2 w1 o$ r& V' S
- LDA #$004 N0 r) K: r9 y! ~
- STA $6000 ;数据初始化( e- P9 A# k5 M' X
- STA $6001 ;数据初始化
! Q6 V/ l- G' j- m0 P- U - LDA #$7F: T( I% k1 v7 |- }6 a( W/ `- o
- STA $600F
E2 j1 G' V2 [# i - pause_cmp:
: N( J7 O4 o, v - LDA pause
7 j) i3 e" [ @/ U) I- Q. \ - CMP #$015 h1 J; ^8 V d( W" b4 `
- BEQ button_press
% j0 h3 n# ^* Y1 k* C1 Z {. |3 ~ - PLA1 T4 a9 p, G: S8 V6 x4 }
- TAY, e4 A5 \2 B. @2 [' I
- PLA3 S$ G. W5 D2 V) B% R3 G+ O! X9 k. C% }
- TAX
7 y T5 ~5 v1 O$ P1 s6 g - PLA: s t1 T# J$ F. r; K8 i+ \
- RTS$ T& b% N0 N! {
- ( z, t7 Z2 Y, k9 v% x* o! I
- button_press:3 S3 T" d* P/ q7 R' m
- ini_Y:- o( n; M6 g! d0 }% S- l
- LDY #$00
# O+ s8 _7 r7 I4 r( ?/ d( m - button_cmp:2 H4 @6 K$ h9 {6 _! W8 h# }
- LDA button,X7 E, v' k E4 [( k
- CMP ora_data,Y. }" Y r4 C/ X! Q& h6 \
- BNE count_Y_cmp# Z9 {( n3 r: J1 b' S7 L
- flag_cmp:
+ {1 U5 [, i$ a. H* R - LDA flag,X
7 @9 e4 ~6 A6 o) \3 O) j - AND ora_data,Y8 H# O- t& [* v& r# Q; e$ ~/ V
- BNE flag_and6 l1 {0 f/ t2 L# C# ]
- flag_ora:% ^# K: H2 `; t+ C$ i
- LDA flag,X! H, [- y- u6 c$ o/ r
- ORA ora_data,Y7 J2 \" ?" c7 \( a n- \
- STA flag,X
9 V* ]1 l0 b* d% l# I - BNE count_Y_cmp
* y1 @- i3 ~; `( V }7 v - flag_and:
9 W! l' `; H3 m$ I: L - LDA flag,X
* `8 ` f3 ]: w - AND and_data,Y
0 x/ c9 [' k% a# P1 F' S - STA flag,X2 r( d; N+ ^4 }, ?$ E
- count_Y_cmp:
- }- K) Y {- S1 k7 i; O+ ^& M# M - INY$ [' l2 l; Z; n& w1 @' E4 x
- CPY #$08
' a: G+ p7 ]1 T* w - BCC button_cmp g% ~9 l+ C6 s0 a# r
- ' T) \- m( V# `7 E0 l% z
- data_extract:# w( I# M+ O v8 K( w
- PLA
; x* B$ J- B z. ~ - TAY+ }3 Z$ J. L/ }2 R% f
- PLA1 k# k% Z/ D) G: C: z$ Q. N
- TAX k8 L: `' q- B* E6 a( Q
- PLA; N' p o; t: C' l; V Y
- 2 r$ E/ y. y( p' e" W
- return:
9 H' y- G; t8 s) r% F - RTS
0 Q- q9 o. }7 a* J" O- a8 [, s9 G* d - c: k7 a+ D1 A- d
-
( w6 v; s& K# Q9 ]2 _ - INV: ;无敌0 G$ y* \# g+ y3 U, y' w- b
- LDA $6000,X4 M7 b, u# [' h; @+ A ?' l
- AND #$08
W$ b0 W6 A" @+ L! ]$ a! _ - BEQ INV_RTS
4 P( n$ _( x1 y - LDA #$05
. i: p2 X7 J! O4 F' _ - STA $04FF,X3 T1 v/ g$ j7 \. n) g1 m
- INV_RTS:
" @3 z8 e! g- b - RTS! x. d4 c2 F/ D% r& V3 B
- , c- d* g& d7 T& |+ R m- H
- 3 v' K8 Y; C3 h+ L4 F* k
- LIFE: ;生命9 V$ y/ X, p9 Y) G8 H& k( m
- LDA $6000,X6 D/ M' \: a; n6 i8 y: B' o* Z* @
- AND #$04
" V; B* r, V3 H% C' m9 ^1 D o* @ - BEQ LIFE_RTS
7 @2 ^" v' ^3 A0 a& m0 N8 q) e* P - LDA #$09
7 G6 p- Z9 j: \- s( r8 k8 S* r% r - STA $6A,X* p/ p7 k) b9 |2 j2 C% u
- LIFE_RTS:
! y" v, \9 L) ? b) b& N - RTS
% p& I C/ T! V* ?1 D: h/ j
8 e( D5 ]( Q" m" Y4 {- $ l, F- j3 d @8 M( B( m
- BLOOD: ;血量0 A- b. m; n; w6 D! {6 o8 L
- LDA $6000,X
7 ?5 W& \* W! B, n6 L - AND #$01
& ~* j& k6 M- e5 A- j- V - BEQ BLOOD_RTS Y& K: i, f4 T, ?5 I
- LDA #$7F
2 p' q) g5 W# F4 { - STA $04F1,X
+ a2 j& x) Y& w: E) a: q - BLOOD_RTS:) M4 z3 {! @: U0 b* i/ ]
- RTS8 \4 b, O1 m: Z1 ^/ u0 @
-
" L# |8 ]9 F/ y7 ?: j& f& d f9 t -
" t3 p! i/ u3 @ -
* U# h' i, [. p) _% O. C5 {/ { -
. M, v J3 B7 Q7 J/ f' r - .ORG $D29F
7 x" C- s" [' o, L" l; m- a' W z - JSR $FF80
3 P/ x( R# B- \ y/ Z -
) o$ @$ B8 I3 p6 K1 ~ - .ORG $FF80
7 m$ K! I! H" K: a1 j" ]) I - KILLBOSS_BY_ONE ;BOSS一击必杀* ]) i2 D' h* `8 p
- STA $06285 |1 _7 g9 `( s! x
- PHA
8 [ q: @* ~6 Y; S' G: l! B @ - LDA $6000: t6 x4 w: b' ~+ ~
- AND #$401 J3 e, _; `! k: y% a. z9 W
- BEQ ADDRFF8E4 ~9 y3 E# U/ ~$ a* T4 d
- PLA0 t8 [1 W @. U- F% S t! y
- CLC ;敌方死亡状态判定3 J$ C$ X9 @4 O& z1 s$ R: X8 o
- RTS# g5 j4 I+ A: t0 V( K" ?: ]& L
- ADDRFF8E:- S# l" O8 V" v0 Z- j3 W: X
- PLA
# Z# r7 P$ q! `& ]$ B% |0 {$ I - RTS" ^9 M. q* ^4 X0 ~ Y& h K/ p
- & o" a* k- F& n4 g5 d
- 4 k5 s7 B/ [) A" h4 g% h
- .ORG $D151
1 \+ U. H# z3 D7 y1 ? - JMP $FFA0
7 Q0 l# X8 U2 h; ? -
0 X' ]3 [3 _3 M' V - .ORG $FFA0
- A: G* }* w1 T8 g. Y - KILL_BY_ONE: ;杂兵一击必杀
# k/ p; g3 A' k& O% H - STA $0621,X9 c/ ?, t0 X0 `3 K% Y2 Z9 n
- LDA $6000
% E& m' _. k+ E3 g( X5 _8 [2 O - AND #$40
; L: A. {3 Q! d( o - BEQ ADDRFFAD
$ i" z. I3 E$ D. j - JMP $D19A ;敌方死亡程序跳转" c3 m! z: K) f% N0 `
- ADDRFFAD:% e/ `8 v0 [+ ?: [8 J1 ]- a% q& p
- JMP $D154
, J( [3 t7 O" K( ^* [ - . j5 o) l# g: n% M1 b
-
! Y6 |% |9 K& [; P; A0 ?# V - .ORG $A7F66 @ c9 c4 U( l3 V6 ~: {+ E% O0 L
- JSR $FFB0& {/ k) {! Q9 G
- ) {6 M, ^( G0 M) h' k
- .ORG $FFB0 ;全屏攻击
* a7 G( |' B; y8 }$ y8 n6 b - PHA
; b8 N; Q& [6 X7 ~* h" q0 W - LDA $6000
8 c! M2 r- ]. U( X, ]( i - AND #$80
3 h! }" O# R5 r4 w& m9 k" i - BNE ADDRFFBD: ~, a1 W' @6 l& Z! [, ^! }* |
- PLA1 i* p f' r1 N/ U
- LDA $0015 Y' u. H e K% q. H
- SEC, f& Z$ W; P9 t: h$ I, U5 s& Z' J
- RTS8 H' ]5 ] `7 g; N. _! q
- ADDRFFBD:
0 O1 ?: }( ^: M - PLA0 ?* f6 |! D; Y5 b
- JMP $A826
" r! X8 r w7 p' J1 D - " K* ]6 l; Q5 a
- 1 P4 s% X1 j) x, P6 X" l1 \
- - Y( X1 V% v9 J
- .ORG $AA6A1 F& T+ U% @ w$ A H: Y
- JMP $FFD0
2 }3 S# s& S; B- b- Q - 8 s1 S6 U; V7 l. Y
- .ORG $FFD0 ;敌兵动作忽略
2 V1 Y/ r1 s( S. X - PHA
5 v' s1 J) h% L8 q: e9 T1 Q - LDA $6000% S1 i+ B1 P- m8 J# S
- AND #$80# B/ |- c" J' z& e/ q$ I1 ~
- BEQ ADDRFFDC
# a1 M W, i0 x2 \2 F - PLA
5 K$ q2 C/ `0 E - JMP $AA72
% }( L/ a9 v# d5 N' b - ADDRFFDC:7 g, V8 E7 }8 h$ a3 e6 U* x
- PLA
a4 c4 d5 A: Q1 X2 }! } - LDA $0629,X* P. z p$ O! I3 q. ?# Y
- JMP $AA6D% E7 t9 Q5 D* }
- 6 G1 x& A" s/ A: j. P
- ;[FC][忍者神龟3代标题选关程序]% ~& n( O! r* p/ {+ {) D0 }
- ;作者:FlameCyclone 2017.4.11 s4 D2 k& H5 z/ s# v- ~1 U" p
1 S [) G: C2 a. \6 l1 Q0 e- * l* L' X$ F* n% m5 B( G
- ;配置数据+ F. J+ M' b0 v0 w3 j+ Y4 l% C$ X
- KEY_ADDR = $F8 ;按键地址+ o* e4 b3 a4 C b* ^- h6 L R1 F0 J
- STAGE_TEMP = $6010 ;关卡临时地址# l6 r7 k' H$ x$ F* H. p
- STAGE_MAX = $0E ;最大关卡数
. F$ D$ {. L+ f% S) ^9 j5 T- A+ v - TITLE_A = $20 ;标题条件A5 o3 c8 z+ [7 C& a' P N
- TITLE_A_ON = $02 ;标题条件A有效状态判定/ d9 h$ n0 C8 U6 J
- TITLE_B = $21 ;标题条件B
& {+ `* k- g% p5 `9 F8 O/ w7 Y - TITLE_B_ON = $03 ;标题条件B有效状态判定+ J" ?: D2 [9 ~: Y2 Y" g# P4 T0 p% @
- PPU_END = $FF ;PPU结束符
' ^) X4 L) x+ e - TIME_LAY = $4A ;标题显示延时地址" q' J) N1 Z" l' A* _
- BUTTON_DEC = $42 ;关卡减少按键
* b; s( K, i0 e+ R/ f+ S8 A: d - BUTTON_INC = $81 ;关卡增加按键
) u- A2 F4 V: K( [3 v, b l! G& k! B - NUMBER_A = $06 ;数字A距离STAGE偏移量
- z6 A% [8 s5 w' Q4 X - NUMBER_B = $08 ;数字B距离STAGE偏移量( J3 K Z# U# i! z7 m
- PPU_ADDR_H = $23 ;STAGE写入地址高位
4 M2 j5 V/ m7 E9 M7 n - PPU_ADDR_L = $8C ;STAGE写入地址低位 u$ ], J0 q* m: M7 |, l0 a" E' Z
- CHAR_S = $A2 ;字符'S', h. ]. O1 J: T+ x" k# V
- CHAR_T = $A3 ;字符'T'
' B' j# a9 j9 z7 j; a( c - CHAR_A = $90 ;字符'A'
3 h P5 j* q1 U2 E/ h2 D - CHAR_G = $96 ;字符'G'
3 ^8 @- H$ G( h- {& v - CHAR_E = $94 ;字符'E'8 u" o% Q9 T [! h, p" x9 \
- CHAR_SPA = $00 ;字符空格
$ J4 }2 [9 {/ q% J5 Q! K - CHAR_LIN = $AE ;字符'-'# G# p. _% d, w: y# D
- CHAR_O = $9E ;字符'o', R* u; [" }. f# w' ]
- NUM_1 = $81 ;数字'1'. h% t3 J6 _) S( ^ B, Q
- NUM_2 = $82 ;数字'2'" x/ n8 B7 b) O& ^( g) g
- NUM_3 = $83 ;数字'3'
& f+ R- a& P) s8 R - NUM_4 = $84 ;数字'4'
' h; d6 l5 X$ a - NUM_5 = $85 ;数字'5'
9 p8 d! W. f2 k2 S4 k - NUM_6 = $86 ;数字'6'
* u& d3 e2 _6 K, \7 f - NUM_7 = $87 ;数字'7'
5 N' f5 n6 z7 d( R& r - NUM_8 = $88 ;数字'8'
" c0 X3 n6 {0 ?, i. g - NUM_9 = $89 ;数字'9'
; m8 k' Y$ d7 ^. @0 ^ - NUM_0 = $80 ;数字'0'
7 o1 N+ w5 Q" D- K; I9 c2 } - 5 {( Q) K- h9 x6 P) t! L- {1 `
- .ORG $F82A1 d) n) u% F8 u% X! X7 X: R
- JSR $E700
' i3 V6 n4 U8 m1 [3 [& J -
' s2 Z( \2 P: B - % m |; }# B; u8 }
- .ORG $E700
( P+ w! b+ U1 f6 Q* m y - % _- K1 |9 l" E7 E# }% { z% H) H
- STY $4014 ;补上覆盖的精灵写入指令4 J( N" E0 ]0 b
- PROTECT_DATA: ;数据保护
' c% g0 o% X' U# P: [" m, ^ - PHA ;数据保护开始' b. Z( l* @( W: N5 s7 h
- TXA% f+ g7 M" D, b7 i. p
- PHA( o' L* ^' `# ]2 l: v, ?
- TYA
! X7 l1 M6 k1 G$ P( D9 N; h - PHA ;数据保护结束9 L8 |% f7 m& z; m* P
- LDA TITLE_A
. D1 p6 ~" \& ^; o - CMP #TITLE_A_ON ;比较是否为标题画面
: O, U4 I( x( z' } - BNE RET% l( ]) }0 Z/ I* s- \1 _/ f/ V* w) @
- LDA TITLE_B, [; Q- A4 \1 U' i+ |
- CMP #TITLE_B_ON ;比较是否为标题画面+ F7 C+ [% i2 C# o
- BEQ PPU_STAGE
. ~9 x) T! n- i' i" U9 c) M - RET: ;恢复数据- b, j8 f- Y3 ]7 \- q- l
- PLA ;恢复数据开始
9 Z/ `" W; G+ ^ - TAY
! o" ~$ R0 g7 I) u1 ^ - PLA
$ I g2 l4 P8 d - TAX
9 c3 q/ p8 n; U5 }+ f z - PLA ;恢复数据结束
$ |( t$ ~" @% `2 a2 O' s - RTS ;返回6 o6 ~' e5 O# F H
- PPU_STAGE: ;字符STAGE写入程序, {: ?5 z& Z3 m# Z: L' g' m
- LDA #PPU_ADDR_H
+ f: L( c# U8 k# O% e* x& W - STA $2006 ;设置PPU字符写入高位地址6 v( I7 v2 E" |! F0 h0 e
- LDA #PPU_ADDR_L
( t+ L M F! } - STA $2006 ;设置PPU字符写入低位地址
! l7 u0 `" M: t6 Q, p - LDX #$00$ q8 |6 s1 r- D
- PPU_STAGE_WROTE: ;写入STAGE字模
* D! X/ O8 @$ L - LDA STAGE_DATA,X% j3 x1 f$ D# \9 j/ j
- CMP #PPU_END ;判断是否写入结束6 {2 h) }1 ?4 n2 D3 R
- BEQ STAGE_CMP
7 P) {( b1 j/ v& S- d - STA $2007% G* X( @1 N7 A5 Z
- INX# U2 A1 ~# s$ _" T/ U
- BCC PPU_STAGE_WROTE. p$ |" L; i& j
- STAGE_CMP: ;选关操作
1 P" y9 K L { - LDA STAGE_TEMP
+ c. A8 `. @- n. i* K; w - CMP #$FF ;关卡数据初始化条件判断
& a( a2 M2 h" a' ^) [6 w - BNE KEY_B9 \; u6 h* X: a# W' [+ b1 |+ J
- LDA #$00) h2 `5 v$ l; Y# X: ^- n# h- @
- STA STAGE_TEMP ;关卡数据初始化
; J- h7 w' }/ T# O5 J9 {$ ?. N, | - KEY_B: ;关卡减少
- Z' `1 `2 [# Y1 a5 d - LDA KEY_ADDR
2 J5 Z( u4 t& `6 G, e - AND #BUTTON_DEC ;按键B或左减关
c" O5 J, R; L4 u$ l - BEQ KEY_A
. T7 b. c0 \- r% ?8 M! J' C" X - LDA #$FF0 C. E. U7 G8 o2 h3 i4 v2 f! _, Z
- STA TIME_LAY ;重设标题延时7 y$ C1 F3 A, U, a
- LDA STAGE_TEMP2 `; M( r# M# q, K$ N
- CMP #$00 ;关卡比较
* B! ^' z% ?& \/ j - BEQ KEY_A1 t4 k v$ \8 w. o; `1 ^
- DEC STAGE_TEMP ;减关! C c) k/ C% i% j5 x
- JSR MUSIC ;按键音效
f) {1 U3 D8 o/ o; x - KEY_A: ;关卡增加
z% e9 f7 x; D. | - LDA KEY_ADDR6 I. O- ~2 @) \% u% ?$ A( L
- AND #BUTTON_INC ;按键A或右加关5 y7 i* `2 q- j0 T
- BEQ PPU_NUM_WRITE5 D" A8 K& F0 b9 k. s
- LDA #$FF% i0 i: e7 Q* c( B* z
- STA TIME_LAY ;重设标题延时+ z2 ^, M# d$ k3 D0 M q+ C" {
- LDA STAGE_TEMP
- I5 _9 u6 o6 ^, i. O, j - CMP #STAGE_MAX ;关卡比较
/ X" G. v9 s8 u/ @4 Z( Z/ K3 C6 I: f - BEQ PPU_NUM_WRITE) a5 n8 `& f1 c2 V; \, _( i- e
- INC STAGE_TEMP ;加关
1 N9 | {9 ~! @. y2 k* o6 t2 b0 ? - JSR MUSIC ;按键音效
' ^* D7 ]) W! D' @: P3 H) y - PPU_NUM_WRITE: ;关卡数字写入地址- t5 J% k2 {4 T. W
- LDA #PPU_ADDR_H4 t, F' C1 J$ E4 s4 U5 A
- STA $2006 ;设置PPU数字写入高位地址
- N0 a1 |' R2 [) J8 x; p8 ?* s1 @" V - LDA #PPU_ADDR_L+ g/ m6 y [, T" u
- CLC
, `9 h, v! H7 u - ADC #NUMBER_A
$ K7 @7 Y& n) e; F - STA $2006 ;设置PPU字符写入低位地址
4 X& f% X% ]& ?' H - LDA STAGE_TEMP
/ [, n8 g" E. u4 a% L4 E - TAX
$ ^0 z# O9 y# L: g: m8 P5 B - LDA STAGE_D1,X ;写入数字
6 a: W$ k& P4 m& U1 A. p! B - STA $2007
3 n& R7 {. O1 V c( p - LDA #PPU_ADDR_H+ B- ]5 T" [3 q; J3 s6 J
- STA $2006 ;设置PPU数字写入高位地址1 E, P8 Z. a B+ O0 g; a% O- ^
- LDA #PPU_ADDR_L
r7 W4 S/ ~& @+ U7 T3 ~; E6 n - CLC6 W% b q9 s4 Q" K' T# B
- ADC #NUMBER_B
* K1 c$ E' u+ t" e - STA $2006 ;设置PPU字符写入低位地址
9 k6 ~( G0 V6 X - LDA STAGE_TEMP
! M; P1 d: \9 V - TAX
) a2 w5 A6 {7 L+ Y' n1 S4 W - LDA STAGE_D2,X ;写入数字, Q: j$ _ n- O9 H" i& V, [
- STA $2007# O# Z- h: n1 S0 t# S; \7 k
- STAHE_WRITE:
0 L, O) \: N: u" A - LDA STAGE_TEMP3 B% H& q9 l9 Z* ~& i
- STA $2D ;初始关卡写入
1 M2 K" H$ R& Z f0 L: ~4 d - PPU_RTS: ;恢复数据; T4 Y$ j0 |1 E6 W q$ P
- PLA
; ~" D i( g, e& a- g6 x& _0 P - TAY/ E/ R# B7 u6 P
- PLA8 o/ k3 y' C; E. q
- TAX6 E) Z3 i: T6 z) G( H) V6 n
- PLA
- o0 T4 i' H/ t - RTS
# G3 Q! I- r7 u! Q - ( q6 e' [# o+ m
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
: o' H U/ C5 z - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END: \' z+ x+ S j
- % C) m! \6 V. |/ j2 A
- STAGE_D1: ;关卡数字
# q% a! r* K# |. b$ a5 B7 u - .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
9 U$ o4 _9 T. \0 ]8 r* A' {0 o& `
- `: W( _4 j% F3 i* g- STAGE_D2: ;场景数字/ h1 G1 f. ?- v! ?* ^0 C5 N
- .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% `# h5 |2 `; ?( J, ?) j2 j
- 2 U3 h' h9 M1 M4 X& h
- $ U. {+ ~! Y R+ P
- MUSIC: ;按键音效8 a( V' m: {0 ?* K' T
- LDA #$3B ;音乐号: D9 \3 w' o) O1 U% }9 n9 d
- JSR $919E ;系统音乐调用
3 I8 U5 u2 ]1 t& Z5 `" e - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
& G# \# @7 t# l! ` 5.生命加满: 暂停后,按下键切换;& j. Q s6 z/ d! B ^$ r
6.血量锁满: 暂停后,按右键切换;
) j, O, k/ S$ W- d $ l) U5 G. G- w" ~' W1 F8 ]( K
0 A' R9 Y C) i& f0 U j- G1 z
! d8 C2 a/ ^& _* z0 |
; _- R8 ^2 V% O4 O+ N7 d5 d
& ?6 |1 ^$ T5 N6 a3 w; v
FlameCyclone.ys168.com
6 B& S. H% e# @3 m$ d: N% `www.nesbbs.com
_6 g5 I; \) u
) x6 S" a' D( O& c5 C( H- { |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|