|
|
本帖最后由 yandagui 于 2017-4-2 13:21 编辑
# S6 h2 v5 f1 \
& A$ ^4 T5 l& Y. p( Y[FC][忍者神龟2][END选关]2 S! e: r: m& ]& m6 d
2 F1 m* ]! P- }( ^3 _1 v8 T* r* B
时间:2017.3.31. i, K" w+ L. } _6 y% L
作者:FlameCyclone- .ORG $B9E0
* O; k# S% y" O' ~8 C J3 H - ora_data:
) F: T% Y! p: X# e- F - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
/ _+ o8 o: e6 X+ X2 y - and_data:
6 w% E$ k6 b5 d7 E- m - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF' N6 r v, w4 d/ e; m$ H8 t
- + q2 b% x+ ^* \- a' p
- button = $F8$ ?/ |/ G# k+ @# z' N
- flag = $6000
7 r5 r7 X3 f& E2 A) D! a) _ - pause = $3D
+ b& A; }$ u! Y. I0 {2 f
3 B% i2 z3 a; s- p) y+ U- Q- T% o- .org $BA005 n0 t# c) b7 s. M) j1 Z0 L3 X! h' n
- # f" @) }8 B6 L% j5 ?; a
- PHA
) K, X. O, y) @' }! q - TXA, Q! \* }4 [2 C, n) r: v5 Q
- PHA+ c' b0 D" L1 R! m% N( e
- TYA2 `0 d" ~5 m, w, G! Q
- PHA" i5 l- B7 `* q3 R7 \
- JSR KEY_OPERATE
, l% E; M8 m2 h% L& F. v - JSR INV8 h A9 f9 M2 b6 t4 B
- JSR LIFE6 c ^" _9 p0 J ?$ X) g/ L
- JSR BLOOD
5 ?" M. H5 P& u) y+ [+ d$ O; z9 N - PLA6 {: G5 \* @( y! i# |
- TAY) }* F5 y0 ~1 T D. G# H
- PLA" T( J6 V% w7 O) \9 W; F6 u
- TAX& H; @# h2 n) b3 a$ b8 O
- PLA5 x3 c6 Y* W- w& z8 V* b3 {( a
- RTS
" p" }2 h; o1 `: ?4 I - KEY_OPERATE:1 c* `) b0 N' `4 g* p% ^
- data_protect:6 ?8 I8 A: i, B2 r ?. b' f8 |: @
- PHA
' u2 J0 r7 i+ a. g2 N - TXA
1 a: I/ M1 _8 t& s/ P% L" x - PHA5 G. u8 @/ V* Q: @( I9 _; h+ S
- TYA) s* k; l7 S& L/ r- m
- PHA6 u1 Y$ o- i+ a' j7 ~# _" C
* {! A+ L; J2 q V" Q+ }- FLAG_CMP:, S' G" l5 ]5 R, T. ?1 [+ J
- LDA $600F
3 q! W; E. i. P2 ?/ _3 c - CMP #$7F ;标志数据初始化条件判断
0 d7 n" J; Z8 U, k9 y3 p - BEQ pause_cmp
* b; X% u, R% `" Z T - LDA #$80# m3 ?; {3 |- W: x0 m* k, u
- STA $A001 ;6000-7FFF写入启用# T5 B% r, n4 J3 \" t& W( A
- LDA #$00
0 h, j1 D% E9 G6 y - STA $6000 ;数据初始化0 y1 ~% a, {% A5 G5 l! r
- STA $6001 ;数据初始化) @; {$ |6 P: \, S) \
- LDA #$7F
9 W, L& b( t9 K - STA $600F
0 s: E( F. G5 c5 M6 S& N - pause_cmp:+ S9 v* F/ {7 L/ W$ p4 M# w a
- LDA pause) I" n7 `) M" j) e6 u, g% P7 d
- CMP #$01) K o$ b" @5 Y
- BEQ button_press
/ E1 {* B& j6 \: Q - PLA0 u! J9 l. f( U5 w7 w! C3 k9 f
- TAY' {2 N5 I' `7 M# L" V
- PLA
8 s/ @4 e3 ]6 h. A7 E - TAX
9 E6 p% T, Z, J, Z - PLA
2 i; i# f. ?5 Q4 C' L - RTS. y( B- e- @7 g8 S0 n
# t3 N2 ~/ J/ a% a" Z' [, ?( R- button_press: r8 M/ U" [) L4 b
- ini_Y:
4 c5 c s6 F$ M3 b - LDY #$00
, H. T( C6 r8 o1 Z' j - button_cmp:
1 H, ]5 y* W7 |! } - LDA button,X
& `( b* U; b0 X - CMP ora_data,Y
2 R% X, ^1 k1 j' M8 S4 J - BNE count_Y_cmp
& c9 z( O& A. E( _& H - flag_cmp:) J8 m a, P' U" _3 n& e# \1 j9 [
- LDA flag,X
$ t9 J2 _$ D2 h- d - AND ora_data,Y! s9 \# ^6 N# s' V% o
- BNE flag_and3 ^+ Y6 y' A/ n _
- flag_ora:8 A! D" d6 K# `+ T
- LDA flag,X
6 J, Y7 b/ i) ^% [, t* m - ORA ora_data,Y. Z* i* I. j: O# e( l
- STA flag,X7 z# c7 u G* m3 d- s8 x, a
- BNE count_Y_cmp8 M) l% l, _' |$ m8 Q; G' Z( m
- flag_and:( f! p% \% Y* `7 t: T1 T7 b# d8 S8 N
- LDA flag,X# A# s3 a: h% h5 `" R
- AND and_data,Y& k4 u/ n5 W0 P, j% `
- STA flag,X# M, f. M0 d/ L$ Q2 `# L, s
- count_Y_cmp:# U; A- z" Z0 j2 E5 |
- INY
6 _* J+ U/ }, f - CPY #$08
0 e; F }* }3 f3 a" s+ b( { - BCC button_cmp4 i* x; M- I& q9 w( h" Z
- ! _( @% D( v; Q$ h) x! C
- data_extract:& W" H+ B& E) _6 ^
- PLA* d6 m3 z0 A% d& e
- TAY# c0 l0 \+ n4 a* x+ d% b4 g5 m
- PLA0 o# B# e) R* A* b
- TAX0 `6 r' J" S( A% M1 r9 d( j
- PLA% g, A! M# u# S4 u6 f5 |( Q
- - q9 ~* y9 m j0 m: J
- return:
2 O% z! M/ g5 e: W - RTS# W; O+ `0 }( [- }9 u1 r0 {
-
% h' t* @, g) |+ u7 _5 [ -
* w/ a8 N* H; b) a - INV: ;无敌' t: A* [0 ^2 C
- LDA $6000,X a1 e4 ^& D1 T! J& L
- AND #$08
T+ ^( ]' {" n( m& } - BEQ INV_RTS w4 p$ e% U& x* j2 z1 B
- LDA #$050 x, C7 v! J% `' z
- STA $93,X
* ?7 `% ]' b8 q8 S y: M; D0 q - INV_RTS:0 d$ t! W2 S: f7 D4 `8 O
- RTS/ A$ a" Z5 M2 M
8 p l$ v1 P2 D' T. j! f- ; w$ n6 g! E5 T
- LIFE: ;生命/ i% Q+ A4 G, o- u
- LDA $6000,X
- F- t" `8 V; @$ F" {9 F v* l - AND #$043 T" H k) s+ Q! @3 S
- BEQ LIFE_RTS; M0 M6 Y, j: K( h. a
- LDA #$090 z- n+ z- S2 m8 n5 _' D
- STA $4D,X) S1 j$ X3 x$ L
- LIFE_RTS:. U2 y1 _- A$ d
- RTS
5 W! _9 v% y5 k, w - 6 j3 I: \" {0 h4 Y$ K. I
- s* x( x7 w" s9 P
- BLOOD: ;血量
" \ Y: \$ a! z+ D d1 |' f/ x - LDA $6000,X9 \% W" `( q. Z" V! C
- AND #$01
& C6 a; }0 m9 j - BEQ BLOOD_RTS
5 v, k9 I* g7 l - LDA #$38
5 g# ~! l0 C( m! G4 v0 S) j - STA $0568,X/ L. F: k) V% L* d
- BLOOD_RTS:
# v$ w* M" B8 A3 k - RTS
3 y4 {/ V7 m, t# i - # g. o6 Z# C0 W r
-
7 R, Q, H+ _) g - .ORG $FEFE: U: T V! V6 C- Z
- JSR $FF60" }% g* l6 S" u
- NOP, _% L2 S+ L2 @8 v- U# K; M
-
2 m9 J0 P( ]4 X. g - .ORG $FF609 u$ u( `) C) z4 r. [
- STA $F8,X! L; }" {; G, j* d: i1 J* P
- STY $3A,X
; n7 s1 L0 _1 M; k3 e) b - PHA
) i3 Y! x5 k9 Z3 J - TXA5 Y* x& x' J4 K5 d. z. z3 d
- PHA0 ]+ f. `3 G1 y2 y
- TYA
% `1 A* ~+ k& l, }9 F - PHA
! V( R, [- E5 t8 F v7 @. x - LDA #$024 r, F4 z- s1 v- k2 u! S% @
- JSR $DB11 ;调用系统切页
+ z. O1 U. A$ H5 U9 d% a' |& z" } - PLA. b* D( w/ i. D+ [
- TAY
5 R' U c& a/ J! W& T$ n - PLA
9 d4 D, w2 t( E - TAX1 S" r% X0 ?7 x' m" \
- PLA
+ `& ^* e) O( N; t/ x - JSR $BA00
, t8 }% S+ h8 R1 `' }/ b - RTS
& P( X* x! N) |. j$ R& ^+ z) J6 L& _ - & I7 @- L1 {4 p/ r& ]
- ;[FC][忍者神龟PPU][END]! [8 t9 F$ z- `9 A
, C0 E. ?, j7 |$ R# Y- .ORG $BC00
W7 w; E9 `. b6 h5 U/ [ -
' C0 o( x2 b/ p6 v, ` - STY $4014 ;补上覆盖的精灵写入指令
& a& j8 K9 c! R8 I1 \) G - PHA
: \, S5 D! @- ` X0 L# W7 i - TXA9 {+ O# D L: w' L
- PHA
/ e; v4 y3 N* ^6 i - TYA& k& f: k! P4 ^+ |7 L V! c! `
- PHA
7 d) g* s g, \/ L: ?4 s. X& R - LDA $018
7 y% G9 T* i+ @: T - CMP #$01 ;比较是否为标题画面
0 e7 w* B0 H* Y7 \ - BNE RET
# k& c+ M+ P5 \$ x+ ^' F - LDA $019! T5 O1 e: z. B* j7 w2 I
- CMP #$01 ;比较是否为标题画面! ~" f% v, p1 F* G$ |8 m) K% [6 ?8 L5 J
- BEQ PPU_STAGE
) D/ m& e$ |6 V/ ^ - RET:
( A) e8 e4 X8 L; M) Y. A3 n - PLA
2 Y5 ]5 b3 H4 i1 ^- N - TAY& x5 J5 U+ z `, G" x8 l7 _
- PLA
' L* W+ S3 P5 n5 \0 J - TAX
/ T, ~7 z) t) R+ n7 Q3 o - PLA
7 R/ I4 ` B2 [( i9 D* w - RTS) ^ Q N$ g, A& i! b3 a
- PPU_STAGE: ;STAGE显示程序6 z4 a( q1 J, f
- LDA PPU_ADDR_DATA$ {" `" t9 m8 T D3 S; q$ U! s2 w0 ~
- STA $2006
( q& \/ E6 v, O, h - LDA PPU_ADDR_DATA+1
$ k# Q% C( G6 g( a - STA $2006 ;坐标设置
% Y8 F1 k" ]9 t3 H# E+ a% g- L - LDX #$00
1 |# [+ W' n! h0 M6 Q Q& a# y' k - PPU_STAGE_WROTE: ;写入STAGE字模
1 s8 w4 L# ^& t, v. V6 @0 g; q6 p - LDA STAGE_DATA,X7 H+ j; l# D3 _, a; D3 F& `
- CMP #$FF8 k9 m5 |; f+ c- e
- BEQ STAGE_CMP
" ^2 O0 |( [1 }, k$ x2 s - STA $2007. w& x3 Z, ?/ H
- INX
2 r4 A$ U+ L) w: m; p y% ^ - BCC PPU_STAGE_WROTE
6 }5 S( X2 ?% a - STAGE_CMP:
6 O1 u6 J$ T+ }- j - LDA $6010! z8 q; ~4 d6 X2 ?8 L$ y; E/ V
- CMP #$FF ;关卡数据初始化条件判断9 o& M* M+ W$ m* N
- BNE KEY_B
9 @0 }" v8 L, Q. b' c F. w9 q - LDA #$00
! t: g& e, H% @8 T: S) B - STA $6010 ;关卡数据初始化 o# s- ?% m' D8 S( Y: k
- KEY_B: ;关卡减少+ w* p5 ^. ?4 ?7 M |( ^
- LDA $F8
0 {2 |* ?5 _) D2 X& { - AND #$42 ;按键B或左减关
: Z$ N1 g+ \2 K2 ?0 y; [; N - BEQ KEY_A
, Z4 O0 _3 f9 K - LDA #$FF
( e3 h5 x7 _9 Q) W' d - STA $40# J! \9 p2 j. V9 |+ W5 U# d* g
- LDA $6010
- i7 R7 v# x" D5 L+ ?0 n( X( Q1 D7 n - CMP #$00 ;关卡比较& n. v: V2 b# Q9 z) |
- BEQ KEY_A
4 Y+ P) r( U1 Q - DEC $6010 ;减关$ p; t/ V! i$ Z0 n
- LDA #$57
/ ]* v9 L& w$ ?( r" Q2 Z+ r - JSR $DB52 ;按键音效
+ ~5 a2 K8 j3 z0 b- C - KEY_A: ;关卡增加* [+ N- @* }" M o" R; h
- LDA $F87 S2 b- W2 e- i2 f: w8 z% O5 U
- AND #$81 ;按键A或右加关
! ]' y8 R2 j" T3 b - BEQ PPU_NUM_WRITE
5 P6 m1 q% A. Y. m - LDA #$FF
9 q( U, @( ~% U. U - STA $40, _5 Q# e5 g1 Q7 y" ^
- LDA $60104 N% i0 q0 c" G( M
- CMP #$0B ;关卡比较7 g( S! d4 Y; {, M% F) |! w
- BEQ PPU_NUM_WRITE
6 T# @# A9 i& g/ \ - INC $6010 ;加关0 X/ H! u, F0 T, w, R
- LDA #$57
: K4 e$ D& f" u8 l+ ^ - JSR $DB52 ;按键音效+ L2 a+ w9 W' D0 h/ S2 n" u
- PPU_NUM_WRITE:5 ?! S q2 n6 M; S; b( ] i
- LDA PPU_ADDR_DATA7 `2 M% D$ v3 M1 Q
- STA $2006
* p$ M/ P" X# i/ T - LDA PPU_ADDR_DATA+1: m \! n5 {$ n
- CLC6 j; i1 E9 H- f" m
- ADC #$06
" t( B7 X+ R+ u6 n z0 [- p - STA $2006 ;坐标设置
* @6 }6 V" S) J5 w# e8 i0 Y - LDA $6010
9 m# ~! u' h/ L - TAX) z# X; f3 D0 m. B
- LDA STAGE_D1,X ;写入数字6 x/ U D' G; j* u
- STA $2007
1 P4 F4 h- Q* N3 y3 q - LDA PPU_ADDR_DATA
2 B: r) h) Q5 I' R - STA $2006) b. z, i5 b: ~2 j, V# ?) E( C
- LDA PPU_ADDR_DATA+1
$ N! @8 f3 i* Y9 Y$ n- _ - CLC s) V! f; r5 o, j
- ADC #$0B( [2 B, E0 `! u. K9 l5 ^0 I2 y
- STA $2006 ;坐标设置% |( o9 C0 w& S& i n6 B5 w {
- LDA $6010
" A4 O* [0 m; w9 t8 u - TAX0 s0 B! r/ y/ w. u' r: h
- LDA STAGE_D2,X ;写入数字
4 M- k5 m7 [: a - STA $2007* _2 H+ ]; t8 D! M2 ^2 P
- STAHE_WRITE:; N& j% \; I3 H
- LDA $6010
" L8 P+ u$ k; g+ D$ W. T% H5 x# @6 a - STA $42 ;初始关卡写入
) V' k7 F5 c0 h: G9 G4 I - PPU_RTS:
: r' q' [+ ^* h/ R e- n/ V6 z - PLA6 f9 o/ L5 U! z* Z( [$ F4 O
- TAY
9 \+ r7 R! S) V! l' K( A - PLA
: x+ x$ B; m* c - TAX
3 t9 E* P( A; ]0 z5 ?' u - PLA7 t; w. \+ e2 o9 K4 a
- RTS
: n) F. @+ t J; ^1 O( D- n -
0 j5 @! d( C; v7 [ -
1 h5 J1 B' a( P' A9 f - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
# `. o$ ~: P' _. K5 z+ W - .BYTE $1D,$1E,$0B,$11,$0F,$00,$00,$00,$1E,$19,$00,$00,$00,$FF) z4 F+ a( j% e9 G1 U
8 f, [$ c" V+ a) Y+ }: b9 I) e5 f- STAGE_D1: ;关卡数字/ X+ s) u( G6 i& N$ m/ W
- .BYTE $02,$02,$03,$03,$04,$04,$05,$05,$06,$07,$08,$083 N5 S3 R: N, o! W/ x2 n$ K
R4 @' D. e8 L5 t- STAGE_D2: ;场景数字
) `4 k. H# ~5 B- h- Z. C$ P# l# g - .BYTE $02,$03,$02,$03,$02,$03,$02,$03,$02,$02,$02,$03" a" l( U+ b% R
- ' A* ]" z! k: i! O1 |' Z/ k
- PPU_ADDR_DATA:
: C) a3 I5 P0 G+ l4 y* G5 y - .BYTE $23,$4B
/ m- a9 Y/ Z" Y: G' j3 D: b - Q/ B7 p3 i/ i: M& A
( W# L" |8 A4 @/ W2 C5 e, f2 v9 W' x- + Y) v8 w4 `/ A
1 l d- y$ ~2 g* _7 ]- ) r" q- G) s3 r( O* r5 v
- .ORG $FE21 ' z7 r, G6 W' y. Y% R
- JSR $FF40& |3 O0 N. @3 p7 Q
-
m6 K N4 h* l- H! a - .ORG $FF40
; T+ Y( X4 O$ U7 t7 I0 ^6 X% N6 v/ W - LDA $BCDF+ |" E5 ^) r- r2 d
- CMP #$7F, B2 o2 d s9 H; m
- BNE ADDRFF56
- h. [" K1 ^ c' c* i9 m" V7 \4 h - LDA $00186 b' |( G. Z" v
- CMP #$04
, h4 K5 q% k4 ^2 M - BNE $FF52
6 a# q% C; g1 N3 {0 A+ o3 _, U9 H: T - LDA $6010
1 H6 o8 j* ^" E6 S# a - STA $0042
+ `9 X& b3 M" i1 I - JSR $BC008 T- u/ p/ F! U' k: {! V
- RTS: i# {9 i1 V% z5 a2 o, U; S
- ADDRFF56: ( u' x% U0 i# j/ I. @
- STY $4014- L5 n8 A. Z" h9 ~ A+ L* q
- RTS
& J1 _. `6 x9 w X x -
; P- M. N* m* C1 T! a& i
复制代码 内容:. }$ A9 D. G6 u- w( h9 Y
1.关卡选择: 标题时,左或B减,右或A加;" b/ \: X+ h: T* H9 w
2.一击必杀: 暂停后,按B键切换;' y6 I' O6 a# h J: c9 `/ @
3.无敌锁定: 暂停后,按上键切换;
# z( p7 @6 S" K 4.生命加满: 暂停后,按下键切换;
8 w. j4 a. m; L* V1 b" g2 E 5.血量锁满: 暂停后,按右键切换;
( `3 r+ k! I5 o    
- h# E3 a' K; B2 J* u& s$ u. T! d3 r1 C# v7 \
FlameCyclone.ys168.com0 A( q3 e% h1 ]6 l+ _
www.nesbbs.com9 N9 ]7 ]8 E& u) I0 o
) B" E: n- b" R9 r5 g! i# Q; o- n
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
2
查看全部评分
-
|