|
|
本帖最后由 yandagui 于 2017-4-2 13:21 编辑
& k( t+ B Y3 w) r, h
0 t( _9 r& C8 E: B[FC][忍者神龟2][END选关], t5 k0 i9 v6 T$ M# m
7 Z; V2 m0 i( a- {' z
时间:2017.3.31
! |5 d! }- d& ?& H1 Y作者:FlameCyclone- .ORG $B9E01 g: C: I: l6 B6 t& E+ U0 z
- ora_data:
7 t, a6 X7 \! u! ^; T: ~2 t6 ] - .BYTE $08,$04,$02,$01,$80,$40,$20,$10) Z# [; m. Y3 v; u& M- ?
- and_data:! | l7 t5 \3 A0 o" I0 m1 K; q# g
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
4 o) A' y+ b5 t9 W( N# q$ e/ U -
/ Y% w" g6 G; O% o0 x2 Y4 [ - button = $F8
& y) Z. e: w) C - flag = $6000# p- g* j4 {3 [4 F- U
- pause = $3D
' b" o- s4 G$ R; G# a) w3 x! [5 S
6 y7 H- O: J9 j0 A- .org $BA00
1 L! u/ F' X4 O$ D& n$ D
S; M7 s4 X C- PHA r& n% R2 v# u3 F. q7 ~
- TXA# ?3 F* S( o0 A$ S7 K
- PHA
1 X4 D: h* { [ - TYA \; y9 ^* i3 n8 m. y+ l/ m
- PHA
. H) d& v4 ?7 P9 Y- | - JSR KEY_OPERATE; E+ e$ j# [5 E! r& N
- JSR INV9 d8 h' s+ m+ F6 A# j! ~+ c
- JSR LIFE
/ ~9 T3 P; X {5 t: } - JSR BLOOD; F! |1 p$ r! ]5 J" {5 @
- PLA
( e+ b5 d S6 B - TAY3 n7 `$ J3 o/ B# y" Q
- PLA
' k& P, w& }& j, U - TAX2 c/ w& u- N6 O0 ~
- PLA
7 }0 F2 E) |1 e - RTS/ x1 o8 l. B @/ Z) Y; {
- KEY_OPERATE: P; U$ ^+ u2 ]( E
- data_protect:
7 z( O% K1 h: o% ^; F* { - PHA
( Q! n6 L' t4 m, } - TXA
! ^2 C# M( {- i' f( T( q. B - PHA3 ~8 U- r; D3 Y& ~' y
- TYA/ d; y+ V" ^1 I5 L1 c
- PHA
) _' {/ D" V6 }" z
* q, G1 w8 L4 @2 r8 h- FLAG_CMP:+ g* v) W9 l' a5 f; e6 m
- LDA $600F
( P7 V" Q ^) A1 S# P; }% E/ X, u - CMP #$7F ;标志数据初始化条件判断1 ^+ M7 c! q! c3 F9 X
- BEQ pause_cmp
: g6 Q9 H9 \0 D) i \ - LDA #$80( C' _0 B! q- [, l$ E
- STA $A001 ;6000-7FFF写入启用
$ {( N6 j) M4 b1 x - LDA #$00
. L8 v v; N( s* x5 f1 Y - STA $6000 ;数据初始化* v4 C- o* v- ?2 q' d5 ~9 X
- STA $6001 ;数据初始化
' Y% |- |1 T3 i! b/ m1 z - LDA #$7F( _; b$ l* g; r4 b- E8 X4 i4 F
- STA $600F' N K( P( Q7 b) ]
- pause_cmp:
1 ^$ q* N: C0 q$ V" h& m - LDA pause
" n1 Y6 W3 J$ L5 u& E - CMP #$01
/ @: r! |4 j! r1 i" p# C( F - BEQ button_press j# d) D2 _ `& I" w
- PLA1 ]3 L) F: U, n/ E0 o2 e
- TAY9 G* O; Y5 O" y& O5 g
- PLA7 V- h; s1 a1 }: q+ z! j7 m6 z8 c- |; o6 M
- TAX
y/ \% W. P& R$ K0 r - PLA
( [+ v# }4 z" K - RTS! M2 f0 B: x& `* W; h- x( t+ v. x
- : ^2 ]2 J, I+ F+ E2 s9 ]4 ?+ w# `
- button_press:
" T: {! _1 Z# _1 T - ini_Y:
1 x/ x0 S y2 `6 \5 R - LDY #$00
6 X/ m8 F* b% q/ B& v - button_cmp:
: U& H, N) l! r) i9 O( U - LDA button,X) ?. s8 h& r3 C/ R
- CMP ora_data,Y
; A5 b0 y' P0 _' H, @/ \; Y - BNE count_Y_cmp L3 e; X( ]8 z5 R; F' f' D
- flag_cmp:
5 o* Y- @2 g: V" @# j - LDA flag,X
) m$ e8 D( h' I+ A" b$ b0 v/ { - AND ora_data,Y$ i8 K. e% K1 Z. ^" x; p
- BNE flag_and' ]3 t# p1 ~1 a( b' q" f" b2 e7 ^+ W
- flag_ora:
0 V: a {: u* F9 ? - LDA flag,X
* z' ]. x | j7 ]% ]/ S* { - ORA ora_data,Y! c b9 A* [1 R. I/ S* _4 a
- STA flag,X/ L" f% U3 d0 P) u% {; z7 F
- BNE count_Y_cmp* L8 x" ]0 c! h) J
- flag_and:4 Z7 {& E6 x1 R$ @6 [
- LDA flag,X
9 W; `9 K( M- [+ n - AND and_data,Y9 J* O* ~7 y7 ]1 `$ e R
- STA flag,X! |' S8 ?6 U+ A- W: ~8 g
- count_Y_cmp:
* v9 E: o: f( ~" F; k - INY9 V) v6 k! v1 ~
- CPY #$08+ x( u8 @0 b* A- v- v) k
- BCC button_cmp
v9 F/ q4 }+ x* x1 U -
, \* \; X' U! T/ V - data_extract:4 g9 C5 L7 H! O; R
- PLA
f% N' t" O) q& X0 H - TAY6 k* n/ }! P6 }) @& {* W& C, J
- PLA
6 f# q% k1 F5 }2 x- V6 `# d+ _% v2 x - TAX
f; L- E( | V( p& Z - PLA/ {9 @0 d; j7 h9 ]1 c( o- i" X1 {
- ! v( j, }4 j5 F7 a2 n
- return:& M. I+ P" L' O" v; ^# w( p
- RTS$ {3 E, Q8 P0 r- Z
-
& D1 ^# T- b7 Y5 h- v" ^# b2 ?% g -
+ w# A" _& k4 q! i% _ - INV: ;无敌, n1 Q% h& t- P2 _( t6 U" k# ^5 W: o
- LDA $6000,X' z, e. w" R* o0 H& D4 h @; s+ X
- AND #$08% u: a2 j( J7 c# H
- BEQ INV_RTS
0 ? D3 F0 d" s; T - LDA #$05
- U5 [/ Y; B* {6 S7 T7 [3 L5 w - STA $93,X
; L B$ ?- b. B j. R4 T% @ - INV_RTS:9 [& F8 I1 i8 M- h2 @& Y# B
- RTS
2 u3 S( Y6 o: }0 r. _
! n H& [# g; m& e- ~- # M' T+ \( T# g* R( T
- LIFE: ;生命 F6 s1 G6 }5 U
- LDA $6000,X
9 Z3 {: x7 _6 s! O4 g - AND #$040 d) V+ h) P! N, k1 f
- BEQ LIFE_RTS
) I* U$ g! G o) Y - LDA #$09 e o# G$ M& |. e( F; {8 p& Z
- STA $4D,X* H4 ?) y- K. y# B: A
- LIFE_RTS:
- f1 ~( y2 r7 ?* d5 J: H - RTS* _) u4 |: e1 h3 U5 o
, _% J7 @+ a f$ n' t9 A5 T" Y7 ^-
! m1 \% t! [2 \ [& J - BLOOD: ;血量* B3 `$ N8 S& n5 C2 J
- LDA $6000,X
4 a: u' p$ \ T% U3 G9 \+ G - AND #$01
% }* Y- B& u4 K0 @8 Z - BEQ BLOOD_RTS$ @& `% L7 k& P; u8 x& z
- LDA #$38
8 X7 G, f0 m' Y |4 T - STA $0568,X
( V7 M& S K Q; w! x( h4 i - BLOOD_RTS:
% R# k/ B3 D4 ^7 l. J - RTS
, ~- x( \/ e# v: e - 3 ~# B7 B8 r& Q; |2 ]) Q' b/ h, P
- + F* B: ]: I0 U; g6 F
- .ORG $FEFE+ R' u7 l5 \' A' p9 }
- JSR $FF60
$ C- i9 ~+ D' r2 P% q - NOP+ U+ I4 K5 e3 U8 v- ]4 b: N+ G& F
- 6 y' h) M5 K$ W; E8 H
- .ORG $FF60
& ^/ ^; K6 `3 f8 o* z* b$ @6 R - STA $F8,X& q( W% r' j! `( ]
- STY $3A,X0 r* C& L/ f4 j7 m0 l" ?3 {4 R4 a# F
- PHA
" Z& D6 o! s6 K6 Q5 B/ l- @; H0 S - TXA
4 ~# x( h7 z- z - PHA
- h" f/ D G$ h4 c, A" N - TYA
; w6 i5 B$ M$ ~0 j - PHA
. n4 P9 l* j. ^0 f' Z1 R - LDA #$020 p( J9 d8 S) l) f) f7 x. e
- JSR $DB11 ;调用系统切页
$ |+ k7 r8 [, n - PLA, V7 i7 [* O" H9 a
- TAY. g: T! [. x+ j; L
- PLA( |) s2 r5 I( v, L
- TAX
! u# K. R: f/ M( W8 }3 ~ - PLA
; i( C+ Y% @% |) a4 V* h3 m - JSR $BA00
6 S7 O. N( h7 x: R1 @ X: n4 k - RTS % _7 W2 a9 N. k; O
2 w1 ?7 B2 S& R m- ;[FC][忍者神龟PPU][END]
( A* s3 h& j$ Y) i - 5 j' r. C0 E4 m/ K) `+ z3 J
- .ORG $BC00) Q5 W& m. B G
-
9 C; h7 f7 `. F% P" c: l7 C - STY $4014 ;补上覆盖的精灵写入指令
3 D8 W; z4 p; a+ P3 ^ - PHA+ W$ c) g% e( y l# \
- TXA' y' E" P* A: W# a; u
- PHA
. v3 d6 y( S0 B/ R/ L, }2 s# ] - TYA
: P5 D* N7 L9 ~7 u. q4 q$ Q - PHA
! }, a8 G3 q2 e4 e2 p - LDA $018
! F" T5 g6 D k6 r/ E+ }: \$ P - CMP #$01 ;比较是否为标题画面' [7 ^ S8 ~) r$ N: t
- BNE RET
3 u- `0 _% o, {' G - LDA $0195 U) a- f! R2 I5 P9 t
- CMP #$01 ;比较是否为标题画面
5 Q$ u v! p8 L - BEQ PPU_STAGE y7 C# k7 F2 C0 @( v1 K
- RET:. N+ ?- b) a" C
- PLA$ A4 q3 @7 d/ r7 o: Z5 z! B |) ^
- TAY
) G4 z1 w+ ]6 w! M7 Z. Z - PLA
2 R: `5 \. P; f& E/ [ - TAX- q x) C8 p L) b
- PLA( v. O$ _& s8 k N2 r
- RTS
6 H( R, K: W9 D - PPU_STAGE: ;STAGE显示程序" M7 j4 E7 i# G
- LDA PPU_ADDR_DATA
) x' _; t1 ?5 J - STA $2006 R& W& l. i7 h
- LDA PPU_ADDR_DATA+1
9 W6 T: B* X/ \* \9 u - STA $2006 ;坐标设置6 Z, d# ?4 C- t% i% f2 k
- LDX #$005 ` h; w& t: E: m
- PPU_STAGE_WROTE: ;写入STAGE字模: u/ a9 s4 |+ m1 x
- LDA STAGE_DATA,X' ]3 p( A5 m% _0 O2 O5 h# V7 {$ y' ~* E
- CMP #$FF2 C% U+ i" k; B$ t
- BEQ STAGE_CMP
& X- b; a3 H# R5 Q u - STA $20074 S9 S" ~' ]6 ]6 X
- INX4 g, [5 t7 q: F. R6 w, v
- BCC PPU_STAGE_WROTE; b( `2 H1 S2 ^* G" v( i
- STAGE_CMP:5 L( o" W0 [# M2 b5 E
- LDA $6010
- w, V) c3 B8 r, {- P - CMP #$FF ;关卡数据初始化条件判断
' C; D3 [) I7 _ m - BNE KEY_B4 {3 O: J7 m, h7 v
- LDA #$00
6 _! t- D) K7 N5 Q) e3 O: [( O - STA $6010 ;关卡数据初始化) E8 H0 o& ` y+ r+ |0 _; R
- KEY_B: ;关卡减少. P$ Q* |) ^- x9 s
- LDA $F8( P3 u" U8 `( V. Q! X
- AND #$42 ;按键B或左减关
. p0 S5 t1 w5 ^4 K% {+ m - BEQ KEY_A
* C M$ _* G! T1 O( c% i& k, J - LDA #$FF
- t$ Y* d0 D5 v& q' R* b* x6 @ - STA $40/ L% ~$ x4 {: T5 B4 c8 c0 Z% I5 K
- LDA $6010
; T- B5 o6 f; h( A6 ^$ s- @8 d - CMP #$00 ;关卡比较
! o9 t1 k5 D/ E: ^$ q* R5 ~$ P - BEQ KEY_A
8 G) b* r/ }% y8 N A - DEC $6010 ;减关( A+ c" m( ?+ j1 @: [0 `
- LDA #$574 }3 i) o1 I4 Y. K5 y- X1 U
- JSR $DB52 ;按键音效7 @7 _9 R1 G; a1 k/ k
- KEY_A: ;关卡增加
1 ]' f [( z; L( V, { - LDA $F8# H% O& k# }* A. Z
- AND #$81 ;按键A或右加关; W, j- B& Y m$ M* l G
- BEQ PPU_NUM_WRITE
" B3 I9 k5 H* a6 \+ q+ P - LDA #$FF( o6 e( @# Y! @+ Z# u$ ?
- STA $40
6 Y. D$ J% u) { - LDA $6010% P# \( C* l i2 q
- CMP #$0B ;关卡比较5 x: D ~4 a! V) b4 G2 s: G# u' G
- BEQ PPU_NUM_WRITE
; c% I! L0 g, a& j - INC $6010 ;加关8 L' e, v/ V8 O! n7 ?
- LDA #$57! ]5 e6 t6 ]. h8 W
- JSR $DB52 ;按键音效. M% e' h: }. x1 n5 c, a
- PPU_NUM_WRITE:
7 {0 _8 u* P8 a; r( K - LDA PPU_ADDR_DATA' J, U' Q( ]7 u4 z1 j
- STA $2006- N( F) s# G( r; Z3 k
- LDA PPU_ADDR_DATA+1
+ ~2 |1 C2 N% H3 s+ a - CLC
+ \% }0 @1 u7 l6 g/ S$ ]: d - ADC #$06
9 a- a- h9 B- d% r x) c - STA $2006 ;坐标设置, U! O6 A* q3 }. M" X2 V$ I/ I
- LDA $60101 [; d8 x2 ?, D& y
- TAX
, v6 }4 f' K! L, s - LDA STAGE_D1,X ;写入数字
|9 K0 a. Q! ^& ^ - STA $20077 s5 O9 F2 X5 N, \
- LDA PPU_ADDR_DATA
\9 X+ n3 o# N) |! c+ n - STA $2006
; z7 Z& `* l0 V* u - LDA PPU_ADDR_DATA+1
* C5 R/ u- ~! ~6 ?8 `) u - CLC. _& l+ E- z* {0 q* h
- ADC #$0B
; }6 f D5 h n - STA $2006 ;坐标设置
- p* r8 p" _' ^: @" N: D& j7 L - LDA $6010) U9 n" s; {2 N8 n
- TAX9 X, [2 ?: M- m' W
- LDA STAGE_D2,X ;写入数字0 }6 D* O M6 E W0 G
- STA $2007
( l- y+ q0 f+ v9 u% N% G5 t( K/ y - STAHE_WRITE:
3 u- p3 r. S9 J0 n2 ` - LDA $6010( S) [' _+ S% P. m
- STA $42 ;初始关卡写入
8 m1 O4 |1 a0 _+ y7 L - PPU_RTS:/ |/ Y3 I& i' P& o& c: V
- PLA
$ P0 D- R5 ~ W: Z" N - TAY( |( J4 b) d% ?" r7 P, E
- PLA
' M( _3 ~$ f6 L# G - TAX
' {6 B1 M( t* h4 t" R' L3 K7 N - PLA
- l$ o* |; T/ w# \# v# I - RTS# c5 Z# n W1 _; c0 S6 r
-
1 Q* e! z$ X: b% e7 y -
4 M9 J, k' Q; r& ~ - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
0 ^* o* w' N7 a1 b: C8 ^1 A* D - .BYTE $1D,$1E,$0B,$11,$0F,$00,$00,$00,$1E,$19,$00,$00,$00,$FF- x& y x! q, |! x2 E/ n7 w
- 1 ] {0 ?! b0 L+ l
- STAGE_D1: ;关卡数字
l4 f+ |/ C# Y: W; B - .BYTE $02,$02,$03,$03,$04,$04,$05,$05,$06,$07,$08,$08
6 v1 E. w R; _) E8 ]& _6 T
7 n3 g }; R* k" ~' U0 B" _- STAGE_D2: ;场景数字% N D- T$ _; ]2 |" c
- .BYTE $02,$03,$02,$03,$02,$03,$02,$03,$02,$02,$02,$03 Y e# k8 |6 K3 [+ J' ^
-
( C4 H; f7 q9 u( h# c - PPU_ADDR_DATA:
7 g2 V L* O( ^3 O( X - .BYTE $23,$4B/ O4 {% s8 G# h3 y, R) T$ e
- 2 G3 `/ W/ N: f+ M" n
. _. r* ?+ x9 o' b
% l& t& X2 O, [
/ D9 _, ?) N6 B- k, s' j
& o6 Z; D" i9 @: e- .ORG $FE21 . n2 R1 B: f. D" o7 y
- JSR $FF40) u- J* H0 k2 F* E+ f* F, F7 p5 W
- * }! l' @9 L; ?7 l
- .ORG $FF40, ^' {" ~) j* f
- LDA $BCDF; B0 I" p/ J+ x2 O1 T
- CMP #$7F/ t/ M G' y& p8 ~+ n; k; m
- BNE ADDRFF566 F0 x* V d) R8 z
- LDA $00184 Z9 i. s6 h. @3 w2 @
- CMP #$04
- L6 t4 t: l- q - BNE $FF52
9 a% {( L2 J4 u# C - LDA $6010
8 Z; k$ V: a: J" E* F0 K, H8 T3 j - STA $0042
7 S3 M3 H% o1 U# g1 M3 t: Q9 m7 n2 t - JSR $BC00
& ^' n" G$ l: V0 [2 @ - RTS) W% ?4 r0 C* V; b+ y9 y9 o4 O
- ADDRFF56:
# ], {- Z+ W4 {6 D4 M7 Y* ~ - STY $4014
B) @, H5 R7 ?0 _$ b+ Z - RTS! R% J* q: z# o L
-
) f! s$ B& i! X. n& \: e
复制代码 内容:3 ~8 y; L2 h8 J3 J. H1 J
1.关卡选择: 标题时,左或B减,右或A加;: K$ o5 Y0 w! h" e6 h
2.一击必杀: 暂停后,按B键切换;
6 |3 F& r* ~6 X8 H 3.无敌锁定: 暂停后,按上键切换;, z: d8 }: i N2 L
4.生命加满: 暂停后,按下键切换;4 O1 I* i. j9 m& l$ `% c8 z* }- e: I
5.血量锁满: 暂停后,按右键切换;
$ I4 P9 ?5 U/ Y" S0 x$ y; B    
5 n2 [6 N5 D0 @5 X2 V0 B. h& B
) i0 ] R+ `! [- ?. \6 Q2 D2 ZFlameCyclone.ys168.com
8 l/ Y. x! P* V/ q* Swww.nesbbs.com! x) M$ y3 b3 C* Q. u# v& F0 U
1 }, D* d& B( M5 H- Z
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
2
查看全部评分
-
|