|
|
本帖最后由 yandagui 于 2017-4-2 13:21 编辑 ( V+ Q2 m/ g2 `* p
! K, }* M* {/ d/ f6 m
[FC][忍者神龟2][END选关]! X) t9 X. W; A0 h+ g: O
M! p& [$ |( P7 P: J$ S时间:2017.3.31( x- n/ P( S$ n7 n3 |1 S
作者:FlameCyclone- .ORG $B9E0; o; k. d E. b1 C
- ora_data:, d0 Z% x) s- \8 D) [& G- j- u: l
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10+ q$ l+ M1 K, l
- and_data:
2 {1 x0 E; P/ I3 l. R0 J - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
7 r9 X# A) j9 M/ `( C( W5 d# ? - " H G& S5 G3 b( K; ~
- button = $F8
& p2 ]; W4 J5 D, \$ j - flag = $6000
0 a# r$ C: y& d% G% [9 k3 U - pause = $3D' a+ Q: s1 |4 {9 B" Q9 R$ t, V, a. |
% g9 O* Y5 j- m$ N* G- .org $BA004 h! f! n# ?$ c9 r! _9 x0 n
- ! I5 U0 W8 d. C5 _) U4 r4 U! C
- PHA
4 {% N! k0 A8 U _( j& X) ^. O! g - TXA0 _0 C* s4 j& c/ P' E7 U
- PHA/ u+ h: B0 X2 C' x u
- TYA8 C6 K& j! \# m& v# ^
- PHA! q! @7 u1 s1 k' U
- JSR KEY_OPERATE
( o! {3 Z* ]' b8 { - JSR INV' T, s5 u; H6 j
- JSR LIFE' s1 a0 V6 A6 x) W$ {) i9 |
- JSR BLOOD
/ N' s3 v8 L8 K& _: I% Z2 b - PLA
' n0 A" o: v v; J* L) M - TAY; B" O7 u! I7 A
- PLA
3 d2 y- b: g1 S0 a# ^4 U! `/ w3 y - TAX
- ~) S" {3 G2 Y- f) l- I. t( G - PLA7 W1 @ I0 Q4 H0 [
- RTS
E4 O4 s2 R& K0 H9 M7 J) V; r - KEY_OPERATE:# `" ?2 k+ u* l+ x
- data_protect:
& i2 U# Y# h5 h - PHA" ?4 z. P8 q9 o% W5 t8 p: S
- TXA2 l% _; G. M/ A# b9 a+ m
- PHA/ I0 _5 { {( [( J2 z: W' B; _
- TYA! k4 O3 o, Y+ a7 S0 \1 a
- PHA
/ k+ L' U, p+ h O% `, m
) h( j$ u0 G% V9 Y0 S$ l' M# K' `- FLAG_CMP:+ D) N, e, G. j5 ^0 `$ `
- LDA $600F
; E% y6 w1 I. q - CMP #$7F ;标志数据初始化条件判断1 \# X$ {/ D2 A1 ]( ]
- BEQ pause_cmp' _$ L; o. S& W! j( L
- LDA #$80
9 u- p2 w7 X% O2 B* Y - STA $A001 ;6000-7FFF写入启用
, p1 a' u3 r2 [2 x9 y+ y# |0 F8 q8 c - LDA #$00
8 n2 v6 V- n7 T1 B* k - STA $6000 ;数据初始化; l! i9 I& ~* |# b c
- STA $6001 ;数据初始化( h" g* `) H4 g' n- t* G
- LDA #$7F
) i) B8 y& I) y8 D/ r - STA $600F
* u+ ^& N, G/ R- w" s7 C; t+ I - pause_cmp:. F/ L) W+ M: J* d" ]; S) |& B
- LDA pause
# `7 {/ w3 }# h i! U - CMP #$01) T1 {* q. V" ?+ s B0 S
- BEQ button_press
8 q) C+ m0 K5 d$ f$ L0 ?! U, z' j - PLA' y; b; F. T4 e( X, I3 i6 Z, z
- TAY% ?, x9 y2 ]7 |3 M) \" i! E
- PLA6 f5 F* X! y- x, k! x' I: A
- TAX% M6 R6 e+ W* q/ u* A8 r
- PLA; P% Q: V* u N( I$ |
- RTS3 X7 t6 a* {0 l% v+ }& s
- ; G! S! ^3 U! Z# P) Q
- button_press:
! p/ V; U6 N4 }) h" Q - ini_Y:
( H7 |) u( X% q0 e9 E - LDY #$00
9 b- n% {4 [0 J# ? - button_cmp:
! {1 s& Q, w3 p9 c j& ?8 u" ~0 {1 ~ - LDA button,X5 j! W, v* J1 X9 h, t
- CMP ora_data,Y
) t+ _) B! A1 P3 ~) V7 y( W - BNE count_Y_cmp( `8 X. i3 X1 x: K- g
- flag_cmp:
2 E" v' T& n {7 ` - LDA flag,X1 J+ M+ W7 x$ D( O' i- [
- AND ora_data,Y/ `/ d/ W: J2 |* M' D6 i
- BNE flag_and) R( v/ A4 B& @5 g& w F) E
- flag_ora:. E U& L! L( |0 V: \
- LDA flag,X
* X0 s/ e [3 I7 [/ N - ORA ora_data,Y
2 y' d X% v0 k! }9 C" d8 }5 t - STA flag,X/ z( u( I. i% v
- BNE count_Y_cmp
6 e7 C5 k. `4 y+ _+ }6 |7 I9 C" _ h0 l9 q - flag_and:( P* }$ b; S& V) C( E
- LDA flag,X2 {: {% G$ g4 W/ ?6 H
- AND and_data,Y
; v. d3 c: @# ]( P, O) ~- K7 [ - STA flag,X
5 a3 a4 N) ~2 e7 V% q* {/ K7 y - count_Y_cmp:7 B" j# l! g, P
- INY
+ r1 Q! c3 b2 U - CPY #$08* \9 _1 H7 g) {- `0 ^0 l0 e( x' L
- BCC button_cmp
6 v) O+ H. C* U5 @ w, D0 H; V -
* b) b4 t/ N$ [0 b* [ h. h/ Q - data_extract:
! G% O+ e+ x2 k6 W8 h* j4 y - PLA
% h' Q; M, \1 N - TAY% _2 ]& M4 L9 B' z; |
- PLA' q4 p7 W% K, J: Q$ ?
- TAX' t8 W8 e! F* m) }
- PLA& ^ X) h0 `5 n% N$ \ j% W- Q9 B
-
2 k( W3 t( b) s - return:9 b' K; w5 T* L3 L; `- c O
- RTS
$ B( y8 q+ y/ p' x* L6 i - ' A. h: y0 h o/ G
- % H8 w2 E3 B% @- y( g7 |2 Y
- INV: ;无敌
$ T* Y$ \4 W( U& t - LDA $6000,X7 r- r! {/ o% {- B9 y0 o
- AND #$08
2 o4 w1 B( \* { - BEQ INV_RTS, M5 a3 c2 ?" T' j1 E
- LDA #$05
) q7 ]! f) e' w - STA $93,X
% L+ n9 t" G5 D6 S5 U/ D, Q+ D - INV_RTS:
- f; d' B% M+ ^- P: [! D - RTS
, z+ d& S! k6 E - % X6 O( k7 { D Z" G q
-
, x+ v p0 B* n/ O+ r' P9 \ - LIFE: ;生命
, ~) ^4 [! f8 A, H - LDA $6000,X& w! o$ B9 q. Q: V! A _
- AND #$046 o* Y+ }7 H6 H, ] C
- BEQ LIFE_RTS
( L" f, c' K N# f - LDA #$09
6 h. ^/ j: M8 [1 C - STA $4D,X
+ h; { R. @/ ]$ g2 p$ t2 H4 ~ - LIFE_RTS:5 |0 E- Q, U) M
- RTS
2 t8 M) L% i% K# E! `. L
9 Z, z; h" F1 \8 R7 G7 T-
8 n: k% D( f* t4 ?5 I' l' I& r - BLOOD: ;血量5 O( F' L" H$ K0 K" n
- LDA $6000,X1 O1 p9 _( N6 w* D+ C
- AND #$011 d, X& N9 Z6 t/ J- W
- BEQ BLOOD_RTS
) m n+ G: x0 n# J: q/ a/ ] - LDA #$38
/ W; ^: B, J. P: q - STA $0568,X
# \! q+ c5 K; b1 O& L* z0 W: Y: i5 ] - BLOOD_RTS:3 A3 ^' O5 e( _9 l. _+ R+ X/ M
- RTS
0 i6 b2 \7 A* t+ H& {: l1 R( b - 7 E! J& j! _/ H# X( ` Q" A7 ~6 s
-
7 a) o" A% o2 b- x) D6 A$ m7 a$ L _ - .ORG $FEFE
5 j5 T6 A5 J$ O7 h* B2 J5 p - JSR $FF60
! u! @8 J" b6 H: O9 p! P" H8 E! J - NOP
2 n( @; H$ m$ c' ]* @4 z -
% s2 x. c! _5 s$ H+ h2 v - .ORG $FF60
! m% v" @3 t1 ?+ I0 I. Y' b# _* ~ - STA $F8,X- D1 N! m5 ~* x+ f/ m
- STY $3A,X6 u& g; l8 p+ T
- PHA
9 e9 @$ d* Y1 q, H - TXA
/ ]5 Q& r' m: P: x3 w+ m - PHA1 b7 B" x. l0 V$ \) h
- TYA
6 s% ]7 Q; V4 x( e - PHA
" O- I' \4 B- R) b' G - LDA #$02
- l% t9 q5 w/ R3 |) ]) Y* p& V6 f) @ - JSR $DB11 ;调用系统切页
. C/ x" }3 z- } - PLA
' K" g& g: n3 \' X9 O - TAY
' e0 C7 T o1 J - PLA8 F5 z' _2 A8 M$ e" V: [4 h8 C% \6 D
- TAX
. J4 T* [% F* c5 n - PLA& r1 S# c. K- y9 n7 ^( j# Y; |, e
- JSR $BA00& O5 S; O! \; A$ k1 d
- RTS $ _4 k, p1 R% J! E+ _
- ( j5 d: Q$ z% n
- ;[FC][忍者神龟PPU][END]
K) E3 h5 P; K- c - 7 h& P- N8 l9 A$ [, R
- .ORG $BC001 `) s# k! l7 j, @2 Y! |, ~
-
2 C9 n% @' x2 H# Z0 g# l - STY $4014 ;补上覆盖的精灵写入指令, @3 G6 _: U! X
- PHA/ X* x$ I b* U" G
- TXA
+ y- I6 N, B, L, t5 r - PHA
+ D! R, c- r0 f' R5 C - TYA
) \0 r4 }! F+ L- w1 J - PHA5 p0 X* W6 u o d
- LDA $018% T3 D' I1 t/ {( F2 ?+ M
- CMP #$01 ;比较是否为标题画面/ T9 ]. a: F7 J6 r* @7 _
- BNE RET
/ E9 M. K7 f( \ - LDA $019
; t4 f* }4 O2 v) _ - CMP #$01 ;比较是否为标题画面
+ C. f$ J% W { - BEQ PPU_STAGE# D ^- r* S5 [0 D
- RET:
0 j2 d. r3 T* U; S: H, {6 d - PLA% e4 e( `) d A% h# v [$ r; |
- TAY7 G' X: B) G; B
- PLA
, J/ I! W0 C, b - TAX4 h" o. E3 w5 ]# N
- PLA% z& k$ T* z. n8 S- o+ L
- RTS$ R; }9 y/ T3 D" \% {9 E
- PPU_STAGE: ;STAGE显示程序- Z V" S: ~+ T
- LDA PPU_ADDR_DATA
9 e, R$ u& @& [ - STA $2006
; m6 b# y |# S3 @5 `& r! K+ z8 W - LDA PPU_ADDR_DATA+1
`, V8 `4 J3 _6 n: _7 M - STA $2006 ;坐标设置
5 ~# Y' f$ K$ `" A - LDX #$00
2 S- L9 i. h) U5 n% b - PPU_STAGE_WROTE: ;写入STAGE字模: F9 P9 o" p* `
- LDA STAGE_DATA,X
8 L# G v' ~) f) @/ q; j. y$ }8 T - CMP #$FF
2 Z* f9 y- L; U7 w - BEQ STAGE_CMP6 H, m! ~' z# P- L: w
- STA $2007+ e( h. ~9 S+ V9 O8 |/ g! I
- INX' V; X6 b; D5 o+ m9 F
- BCC PPU_STAGE_WROTE- Y+ `, d- x/ j9 u7 R
- STAGE_CMP:
) a; a. T* g0 y! B0 d7 L7 I - LDA $6010$ g2 g1 P8 [8 [/ N5 f
- CMP #$FF ;关卡数据初始化条件判断% |7 }" C; \; g
- BNE KEY_B2 ^1 y1 _; _; ^& N- Z. X# u
- LDA #$00* ~; k4 c: ?* s9 E
- STA $6010 ;关卡数据初始化
6 m0 S7 x5 O+ N - KEY_B: ;关卡减少
4 k2 P0 w! K# h" z0 ]% [$ W3 { - LDA $F84 A S+ j( x8 V5 F% u' S% H
- AND #$42 ;按键B或左减关5 U3 U2 A" R' Q
- BEQ KEY_A
: f6 @8 r. i( J0 v4 d - LDA #$FF
# r9 h3 s$ q. c* Q5 j, y - STA $40
; } G$ g8 N v& L - LDA $6010. ^, f4 d" O0 v# W' J
- CMP #$00 ;关卡比较) `" i `1 i2 G! Q/ S; q
- BEQ KEY_A
8 `7 P. L8 |/ j+ O# O6 I - DEC $6010 ;减关
# _9 v8 M; e$ Q9 C - LDA #$57
3 q, X. y4 O! r; C6 } - JSR $DB52 ;按键音效, R9 Z; Y/ L. U2 a. _
- KEY_A: ;关卡增加
# _! G5 k4 W6 ]* i; | - LDA $F8; [7 g3 ^4 ?2 i, ]7 p. Y& d
- AND #$81 ;按键A或右加关: m( V5 ]' t) U7 n0 C/ L
- BEQ PPU_NUM_WRITE
0 T* `( p( Z& r& e - LDA #$FF. M6 a. r( g& R1 b/ F
- STA $402 j2 H3 Y6 F, ~4 j
- LDA $6010' s% `7 w. `$ f$ e a% e
- CMP #$0B ;关卡比较
: y8 @& O9 w3 z0 X) a1 n; o - BEQ PPU_NUM_WRITE5 b0 C8 m7 Z u3 C
- INC $6010 ;加关
# L( u5 g C# a7 Y - LDA #$57# P/ x# h4 m/ i" d1 J2 |5 ]
- JSR $DB52 ;按键音效8 a* {8 b) ?' S+ A/ _1 e1 i; |
- PPU_NUM_WRITE:" Y/ A. b4 y- v' M4 |# ^) j
- LDA PPU_ADDR_DATA
/ i/ l- ~8 |" ]- Q9 Y3 R5 e - STA $2006
/ \/ ?/ {! m4 ]6 V- ? i5 ~ - LDA PPU_ADDR_DATA+1 A" S& C: N5 P
- CLC
$ i1 _, D; E3 h - ADC #$06, t* R- P3 f" U( X" h
- STA $2006 ;坐标设置
' ?1 c) A* c* O! l - LDA $6010
% N! e Q8 u8 n - TAX
0 P# y, `% z* Q+ [% C$ M5 c; b& g( _7 F - LDA STAGE_D1,X ;写入数字& ?9 B/ w% U' y' [- F; O' b
- STA $2007& }- Q5 |/ G# g* S' }! p
- LDA PPU_ADDR_DATA
% N' v& Y% G6 l- ]; Y6 ?6 F- r - STA $2006
( [+ G& u# L; u x3 _4 o - LDA PPU_ADDR_DATA+1, O2 I' b; k% a, ? ~0 r$ x
- CLC4 n N2 {5 z3 |. v& ]
- ADC #$0B5 Y. q2 F, w! U# B4 Q7 q/ g
- STA $2006 ;坐标设置9 g+ b9 v' o: r$ z; X+ D+ @" {" a
- LDA $6010- Q( F3 Y( l3 b- J2 J
- TAX5 E I) M$ b# c7 `, Z
- LDA STAGE_D2,X ;写入数字
3 b( x; }: s8 U$ a6 Q: H( U - STA $2007
: L$ i0 U9 U3 w- ^8 V - STAHE_WRITE:9 N' M7 ?( c! J, S
- LDA $6010
$ G% e; Y) v9 X3 r2 M - STA $42 ;初始关卡写入7 H+ V4 x4 b3 ~/ b$ f
- PPU_RTS:
% \ K3 R6 Q8 _! `2 l# M0 c: A - PLA3 u( u2 \; q( L; g6 c5 B+ g
- TAY& [8 m% Y. O0 @' i/ S: p* U
- PLA( V6 Y! U8 q) l9 r
- TAX
+ R) s& ]' ]/ }! G* I/ P - PLA% j2 ?7 o0 g. h9 Q0 [: X0 Q
- RTS2 x3 N' r% {8 Q- b
- ! B4 j2 }3 u; b
-
6 {- @3 C2 ^; N' i3 K: ? - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
8 _$ |/ o" Q3 a - .BYTE $1D,$1E,$0B,$11,$0F,$00,$00,$00,$1E,$19,$00,$00,$00,$FF( m. f0 f4 U# h. Z/ {, f3 _
- . d) e$ p: |4 Q4 X2 o! H8 r4 g1 C
- STAGE_D1: ;关卡数字 `4 r! j9 [+ G5 X1 H7 C
- .BYTE $02,$02,$03,$03,$04,$04,$05,$05,$06,$07,$08,$08& s* z, L( }# k
3 c3 b7 o2 @# s& `/ P4 D! i- STAGE_D2: ;场景数字: {! ?* P: h ]- B
- .BYTE $02,$03,$02,$03,$02,$03,$02,$03,$02,$02,$02,$03" F# [ e5 Q& R0 N! I
-
# M% f, L5 D' h+ f - PPU_ADDR_DATA:) Z8 \6 k' u; T3 T; Q; U
- .BYTE $23,$4B
# w6 u, }& l5 H - ) L' }' m. k6 T
" q; R. p- G) g5 \& P- * w5 ^# w( O. [7 m
- ) Z. h, C% |' K$ w+ P4 v
- H; [5 |# P6 |4 L- .ORG $FE21
4 }, }" A1 C, |2 O4 ^6 X5 Z - JSR $FF40
r3 H+ W) g2 D2 U8 i+ C2 B - 1 F+ b u) S/ W5 [: o/ t8 g2 Q
- .ORG $FF40
& h y3 d# x+ w - LDA $BCDF% ]7 `3 Q$ Q& h" m3 ~
- CMP #$7F+ N( ]4 |+ ]6 W9 c
- BNE ADDRFF56
* f, m2 I" W# ] - LDA $0018
" j( @3 Y8 ?0 [7 g2 q( g/ C8 Z - CMP #$04' J/ i% p: S. g3 [+ D+ u. H
- BNE $FF52. \; u- E1 l: k/ F% ^
- LDA $6010; M" z4 I& Z6 r* w5 o" [* H
- STA $0042
- K _! ~# H9 r# m; V; q: n, L - JSR $BC00
5 J& D' f* V" S0 j% ^ - RTS
# j/ d5 x# E# }( Q - ADDRFF56:
+ ^" s. j- E5 F& s& h3 f - STY $40142 h+ f% T# Q0 h
- RTS
, C# V; j" e/ \* p -
& f Z1 n& Q1 |% S
复制代码 内容:
( Z$ M2 L) }& t/ s 1.关卡选择: 标题时,左或B减,右或A加;/ W$ }: z2 {% h O! I" Z% U! j
2.一击必杀: 暂停后,按B键切换;
2 X" W% o( ` p) k( e1 V2 D) W 3.无敌锁定: 暂停后,按上键切换;$ W' @: S4 ~3 b% {, Y
4.生命加满: 暂停后,按下键切换;; Q5 H5 u s8 Z+ O( w) R) |2 v
5.血量锁满: 暂停后,按右键切换;+ f( e2 C2 E/ d" o+ q+ F
    
. f4 _( I6 D) ~; o ^$ C( S! A+ d+ I' T2 r- J+ M& ^
FlameCyclone.ys168.com& u+ i" l3 r! g5 n+ ?
www.nesbbs.com
6 G$ n/ j2 {1 \4 t
8 q! D* j" R: f, } |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
2
查看全部评分
-
|