|
|
本帖最后由 yandagui 于 2017-4-2 13:21 编辑
* L( L+ W+ @3 s9 U: H7 u" I% [9 y) i% R* H) F5 j$ y
[FC][忍者神龟2][END选关]
" o9 @/ {( @' T# w3 x& t6 }$ G! _4 O K
时间:2017.3.31
! z, \. P, \ G4 i7 s6 E作者:FlameCyclone- .ORG $B9E01 Y8 u7 n# Q' L/ G9 P" } q: M
- ora_data:
( A: [8 O) Y5 B; I$ D- a - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
2 o5 q5 Z4 y" P# L - and_data:" D" ~" b# V( J; ?3 R! Q3 y
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
1 ~0 I! l% [: `+ R8 ^# D5 Q -
4 Y+ F+ D6 l( x& n! r9 n: h8 V* k7 j7 ] - button = $F8
_, T( p0 r+ N' I( [: N% c - flag = $6000+ |+ v4 y1 |# e( W+ v$ s" u, |
- pause = $3D6 M s. M8 ^( f' o
( U& R9 @* ^/ v1 a( D$ M- .org $BA00
, g6 b. `& N$ n4 o% s3 i; `' @" {) q' L
8 u5 R; v6 F4 U" S# x* \% D! q- PHA
' o/ M- d4 B$ z0 s I - TXA% C9 Q; r1 y g; e* q7 \5 F
- PHA. r) |6 f$ O. ?6 K% c( s
- TYA# }- |/ {1 V1 C( x6 [6 j0 ~2 ]5 Y) T
- PHA
) l0 S9 v+ S8 w - JSR KEY_OPERATE
' l2 k$ x' L0 H - JSR INV
1 Q k; n. O) @ - JSR LIFE& v" d/ K; \, {; a, M
- JSR BLOOD
6 Z$ e8 T# b, H9 o - PLA: F; T+ g+ P7 _' e1 R
- TAY
' w% b- C/ t- f# c. d - PLA
, @. u2 Q+ i) b V- z6 T - TAX
5 z9 i3 M2 ~; _! a+ P" x - PLA4 F5 Q: Y* S @3 W
- RTS3 A8 B8 z2 V' g; @* O7 c$ o& k
- KEY_OPERATE:
* L5 d) u* Z( y$ e - data_protect:2 K6 v% W* z' n* [: K
- PHA
- c. D0 I, X v$ | - TXA
n9 z R$ v- {6 t- z - PHA
% F4 v% x( c/ c' N' R - TYA* h( m5 o( D+ K6 P6 \
- PHA
, \" s" H: g5 u1 D - / t; U+ O" l: p
- FLAG_CMP:3 n/ @, n# ], l0 y1 s# |2 u
- LDA $600F
2 ]3 y% w! k8 y9 F% y6 u6 P - CMP #$7F ;标志数据初始化条件判断
- C; Q6 f$ }1 I5 F& S - BEQ pause_cmp
2 u1 `0 O0 i8 V& V. ~3 u( L - LDA #$80
: ?/ g; w! b- N2 m- J8 m - STA $A001 ;6000-7FFF写入启用/ m1 p1 n* h! M9 S* h
- LDA #$00
9 d, ]" q; } B( ? - STA $6000 ;数据初始化5 R# J. @5 F* v2 D
- STA $6001 ;数据初始化1 h5 i' S, T* Q
- LDA #$7F
) S1 G- o& l1 q3 {& g9 S - STA $600F* _$ q" B' D/ E! ]' N) V
- pause_cmp:
6 ?/ v7 K s i - LDA pause
' L+ z" r" f3 M9 l' u5 V0 \; U" } - CMP #$01' w3 I2 t. T" f3 x3 I
- BEQ button_press
& D5 e+ i$ t7 h6 x7 U5 x | - PLA$ l ^1 v9 \1 g" a# l+ }
- TAY/ f- ^& I1 S J" t
- PLA& \) S" A5 m) q
- TAX# @, x+ Q& ?* H9 D& P% G! T" d2 I
- PLA B0 z$ X+ J$ O! Z- k* P2 O
- RTS# p* O |, m; }
- ! T7 P; r! u: g$ m% R; e
- button_press:
5 y8 }. Q* V6 H* b. ]- X2 y' J E, ] - ini_Y:
; |, h8 j$ E" t - LDY #$007 [9 N0 ?* o+ o8 r9 K/ I
- button_cmp:
6 r& u0 r) t R# X: S - LDA button,X
0 T& _, l$ o4 C$ b/ T5 l, x: w1 b - CMP ora_data,Y' M0 }% E& u( k
- BNE count_Y_cmp3 [& L/ ^; }( s/ Q' f
- flag_cmp:
. s1 z0 F# |$ q: J - LDA flag,X; o4 i- E2 F$ m8 `5 {: d* A6 U
- AND ora_data,Y5 Z P& t+ l1 X+ N
- BNE flag_and
: l8 l! w' W- \( j4 i( l) i5 [ - flag_ora:
4 s% q* A" M3 l& O& z' y! R% l - LDA flag,X
+ ]( d5 N0 e- \3 y7 y4 `3 d- L - ORA ora_data,Y
0 V! ?+ @% c: P& u+ e - STA flag,X
9 K4 N t' ]; v7 ~2 T9 i* Z - BNE count_Y_cmp; [+ J* J+ g$ G% l* E }( i' O
- flag_and:- {, I1 x `" y: |) E+ r
- LDA flag,X- j( j1 b- p F
- AND and_data,Y
* l" ?. I; }7 L" L7 U& Q7 B8 _ - STA flag,X
$ e. Y5 r$ e) L - count_Y_cmp:
* a9 L0 v! g9 W4 p: a8 ?& } - INY$ T, s5 y9 D! }* U7 E5 e
- CPY #$08/ s+ h) Q: P7 p
- BCC button_cmp
% h/ N( L# X/ v8 Y -
$ r6 M8 I/ O' I$ c! P7 Y2 x6 G - data_extract:
7 w% f& X+ a2 Z. m$ o. h/ n2 X - PLA% R6 t. D$ }0 Z# f
- TAY) Z+ p3 |: H" H1 @2 w2 x5 _
- PLA- j# X9 A/ |- z2 B1 c4 f6 j% R- p* b
- TAX
( n' p$ x8 l' G/ N+ z( r - PLA
( O, s2 K* C1 ? -
$ X6 P" y) F2 o( p. i - return:
1 B$ E3 M4 _* J5 Z" J - RTS7 t5 n5 H$ m7 H9 S3 T# N
- % f$ [5 U+ M! j2 T' B
- # w8 n. ?: z; @" D: W
- INV: ;无敌) S: j' _% n: C4 f
- LDA $6000,X
. C1 s( N& z# c i - AND #$08& L2 `8 ]- [! S# j
- BEQ INV_RTS
2 \, I) R; }; C9 S - LDA #$05
9 H% a- D& E; X4 j - STA $93,X c1 c) @4 T% A
- INV_RTS:9 A6 o3 S2 h; {( ?
- RTS/ E& L6 I+ G5 {) @2 n, l
7 n" N4 h2 m5 f! l-
- c$ ?! `) H9 C# d - LIFE: ;生命8 J: F6 P$ f5 y; X
- LDA $6000,X
4 m' Z; Y0 r! y4 l! r - AND #$04
w% M% [3 R% A' Q - BEQ LIFE_RTS
: s) U4 V. I0 J2 H+ L8 `* O5 U7 b# ?$ K - LDA #$09
! `; S" v* s: R& q/ g - STA $4D,X
; ^8 Z6 }: R) S9 y H! |1 m+ v4 s - LIFE_RTS:
9 `$ C6 z; r, a3 o7 {2 T - RTS+ H! d3 y) s, n- {$ F/ o# w' G
- ' Z( P5 D+ I5 b1 u1 T" M
-
8 ]5 J/ ^3 d: i7 ? P - BLOOD: ;血量9 ~$ d S) ^5 W' E
- LDA $6000,X; @' b( H; g8 {
- AND #$01
$ c& G6 c" w# k - BEQ BLOOD_RTS
* _" Y8 N. ~$ v" Q: V: _ - LDA #$38
( ?& V: F9 r( X% @: j$ I# A6 J5 K: d - STA $0568,X
8 Y# N; y$ B- p& A. d - BLOOD_RTS: f3 c" [9 i% L' R0 d
- RTS2 D; Y/ Z0 I" ?/ Q/ {" S
- 9 z5 ~0 z! ?7 S8 U5 C: c
- 7 O# V7 {3 p! Q, R2 j
- .ORG $FEFE
( C3 V) V3 d8 V4 {- Y/ D$ E3 y" \% _ - JSR $FF60# @) x) f" m; Z* U5 U5 O# h' w( I j
- NOP9 k; x/ {5 _! ]
-
3 E9 u3 R2 r5 Y9 ^ - .ORG $FF60
& ~. }# ]! b; T - STA $F8,X
% i9 `, H& K: }$ s' i - STY $3A,X
0 g& `4 k6 z f+ I0 \ - PHA
- M5 a$ D) z( y, G: [; c - TXA" J$ p( y1 O& t, F
- PHA5 G. N" l9 a; ~, r- y$ L
- TYA
0 q; Q) e* t# L* M - PHA0 W) Y' ?2 S* @6 A& C/ j
- LDA #$02
" O, o' h; N4 O2 k9 o - JSR $DB11 ;调用系统切页8 n) q" E: `: @
- PLA
3 k0 m1 \, T( |/ a0 Q* A1 d - TAY
3 n* M! M) G4 _. ~ U9 U3 J - PLA
; d- I" F8 Q$ ` - TAX
$ T" G; A+ p% n8 {# v' |! V - PLA
( Q) G/ o- W# {) I9 v - JSR $BA00
" c2 ]6 ?3 t( n+ _2 d6 ? - RTS
, q& L3 z3 E: M
: x5 n/ `, }3 t' F9 T) I- ;[FC][忍者神龟PPU][END]
4 X* m8 n. }" V- ^" q: h: r* y) z
" D/ [2 g( E2 ]. t6 d- .ORG $BC00
8 H3 I+ E: ]; S. C! ^ -
& i3 b: n, `8 J9 {6 `3 `! g - STY $4014 ;补上覆盖的精灵写入指令) t+ G6 k( y: s
- PHA
* _* U( q5 _' ~& Y8 n" H - TXA
! _: ~8 ~$ Q5 B" ?+ o" x7 k - PHA" s2 U6 B$ S5 P9 p) f+ c% ?
- TYA9 b9 L7 A5 C: r! l4 W! x5 j
- PHA
0 E% c* Y+ i& s1 y3 m: H% @' | - LDA $018
# p) e+ O; m1 m9 `. a - CMP #$01 ;比较是否为标题画面' }! {" v& Y/ \: p1 {% M2 ~
- BNE RET
1 b! f) q/ o6 l1 j& b) o+ ~! F - LDA $019) R5 k# ~& U, h, z$ q
- CMP #$01 ;比较是否为标题画面; M: k, f: N% O
- BEQ PPU_STAGE1 m% M0 @7 E0 W0 @, {
- RET:
+ M O3 G6 {# B1 |% e - PLA3 Y& D, k- @& h8 h ~4 K
- TAY5 x+ |' T5 {$ t6 u) j4 N9 ]
- PLA
# d q# ~( R' [0 o - TAX9 T; v f6 H4 t3 P$ y( b. v; i
- PLA: O$ [2 U$ D, _+ i8 L7 q/ K& b
- RTS
' N z6 e' C; V1 R S - PPU_STAGE: ;STAGE显示程序+ s6 H; _/ {% r& M2 `0 e
- LDA PPU_ADDR_DATA
- G+ ]8 P4 c7 V" b - STA $20060 W3 u; w p+ _4 c
- LDA PPU_ADDR_DATA+1+ D+ n) I2 q$ u5 t& v
- STA $2006 ;坐标设置* m' U6 E" @ V7 [
- LDX #$00
4 y& |& \0 M8 [1 e8 N& N - PPU_STAGE_WROTE: ;写入STAGE字模
3 E. ]' I2 y- q3 d/ @! F0 K - LDA STAGE_DATA,X# d8 W0 h/ F2 ?: F& b
- CMP #$FF
, u& m% S! I+ P$ |- a - BEQ STAGE_CMP
+ H6 k% z' G( A# n$ p+ X - STA $20078 d* j* p/ W7 Y- h. v" f
- INX
" S9 Y: w1 F' K2 ]( W$ i - BCC PPU_STAGE_WROTE
9 [" W, }- R, A, D/ v3 y) A - STAGE_CMP:+ G9 p6 I* j' ^5 ?: o2 n
- LDA $6010
8 T8 q1 a2 K6 E) f9 y - CMP #$FF ;关卡数据初始化条件判断
( R" l1 I: x3 V& d2 O - BNE KEY_B
5 H1 L2 U3 y4 r( q$ P - LDA #$00
% |* Y* c5 w& k6 ^ n0 p/ k, Y- Q - STA $6010 ;关卡数据初始化& f1 r* S! E4 |
- KEY_B: ;关卡减少
/ k+ J& O9 Z# s3 S: G4 y" r/ a - LDA $F8( ~% e& i5 C: |. i
- AND #$42 ;按键B或左减关" J. H* w1 p( D1 k9 f. s# p
- BEQ KEY_A
0 y5 {2 m8 x: @! H; l8 y - LDA #$FF
4 Q) i1 s" W# ` - STA $40
5 H& ^; j: G, o# ^) Q - LDA $6010
% R# D! ^. e1 _1 v- ~7 x - CMP #$00 ;关卡比较/ I0 d8 J9 s% t0 q
- BEQ KEY_A' y6 P; `" o1 j" x
- DEC $6010 ;减关7 W) r0 o5 D* O! }2 ^4 y
- LDA #$57
4 v' a/ e% r0 W, X) o! M8 } - JSR $DB52 ;按键音效& k# _1 [5 R8 h# e* Q# c
- KEY_A: ;关卡增加; a, B; _0 s$ \& n
- LDA $F8- u4 t& q/ S l9 N( s) y- _0 ]4 I
- AND #$81 ;按键A或右加关3 k9 _2 B: x7 v G& G$ w- S
- BEQ PPU_NUM_WRITE
# M; e+ f3 e) a3 F9 J' D - LDA #$FF, u+ l- n4 U% t: N( Z& l; V+ k' [3 X$ U
- STA $40. P" L1 ^- |$ Q* y2 h+ b
- LDA $6010 Z: @/ R# ]" ~: c
- CMP #$0B ;关卡比较
6 }$ Y2 u/ D$ o5 P" Z - BEQ PPU_NUM_WRITE% E2 @* x; l$ N, e7 Y3 b
- INC $6010 ;加关
& z3 v* O, p; \+ u2 Y - LDA #$57. X% U1 j9 [ G
- JSR $DB52 ;按键音效
2 Y$ d1 R9 T, J' i) H - PPU_NUM_WRITE:
/ Y; U( E, `0 t$ X1 d - LDA PPU_ADDR_DATA% e' ~+ G5 i! m6 b( y$ a% Z% w; u. m
- STA $2006" E8 z, S6 A+ P+ p; J# F9 b/ C
- LDA PPU_ADDR_DATA+1: \ _+ n5 u( }8 S/ x7 ?
- CLC3 ^1 H2 w7 O6 ?1 {% D& S* z5 w0 w* E
- ADC #$06# w: ~: ?1 J8 H) ^* v
- STA $2006 ;坐标设置$ U5 {: k. T: C" a! i P# |
- LDA $6010
7 _+ J" {! ]4 k! x8 | - TAX
) U' c5 z9 P' M2 h - LDA STAGE_D1,X ;写入数字& S1 f5 e- I% q1 Z6 Z- I6 {% X. @
- STA $20078 ]3 Q* K( k. d9 }6 |) N' I( M
- LDA PPU_ADDR_DATA3 X- E) [: Y9 j" {: N# ]* C4 ^
- STA $2006* Y0 _% J* p% Y& P
- LDA PPU_ADDR_DATA+1' s/ Z2 u) B8 T( y# u/ v
- CLC
' D% p* V" Z: k- F$ P1 t - ADC #$0B
9 T# N% B- L; |% m+ O+ h - STA $2006 ;坐标设置, g$ a; d4 l) X1 I. X9 ?
- LDA $6010
' [- e, L8 o6 H! b - TAX
6 {4 S: {+ q2 X( g' Z - LDA STAGE_D2,X ;写入数字
2 p! |2 S& t6 b3 }. d - STA $2007
& v1 g. L: d$ I% U, U/ P2 D8 ? - STAHE_WRITE:* N/ L- P; _9 @9 d# h& z; u# p" O3 N
- LDA $6010( n/ Y$ R1 l' G+ t$ Z' y
- STA $42 ;初始关卡写入
: |: _9 ^- Q* @2 m, @ - PPU_RTS:- K2 I( K2 t3 h! s
- PLA1 D! I0 q# P1 [# q
- TAY5 ^/ q2 G2 i# y- \; }7 Z
- PLA
7 B- u' R T2 O' ]% I4 B: B9 y( M - TAX
/ `: I9 N# m7 |8 T' ?/ J: X - PLA
4 h# s# y% s. s) K( D: O$ k - RTS
1 j5 g \% W8 u' Y - ' i0 U4 Z2 I# d) L) M% r
-
5 f, N& \3 e- Q: _ - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
; }* P9 O4 ^- [$ j - .BYTE $1D,$1E,$0B,$11,$0F,$00,$00,$00,$1E,$19,$00,$00,$00,$FF8 F% }- {! {2 s. |
) o) J0 G" D4 W. f% Z8 G- STAGE_D1: ;关卡数字
d8 \2 f, T! A( x: @ z" k7 L( ^ - .BYTE $02,$02,$03,$03,$04,$04,$05,$05,$06,$07,$08,$08
% B5 H- u$ c- P- a: N# k
; Z- M; ]! k( O( X2 D- STAGE_D2: ;场景数字
. q+ L y( {2 B6 g6 S - .BYTE $02,$03,$02,$03,$02,$03,$02,$03,$02,$02,$02,$032 v7 r F( l7 M+ v1 _2 [( b
- $ `0 D- e. J6 c4 w; Q% |$ r
- PPU_ADDR_DATA:
! M Z1 e" M- |, E - .BYTE $23,$4B! g/ R9 q" p) ?3 s1 u `
-
8 P* E0 M r* s! W& p8 ]
! r. G: n! z2 b% M6 X& w" Y
8 k' f. f) X* W0 D- 5 @2 c5 b. K, r9 M
- & H6 K- L; E0 }, W- C4 I
- .ORG $FE21
7 q( t. M! G; Q! W" M, | - JSR $FF407 P3 ?$ x# o5 I3 H, e3 k' H
-
- t1 B$ U; p& \0 K, b, [ - .ORG $FF40
3 Z+ L; D/ _ A - LDA $BCDF
7 ^! @3 w- V% {- z) f - CMP #$7F
. s: G# |- M" r5 ?- n1 \ r# D - BNE ADDRFF56
. X: w2 c% ~5 T - LDA $0018
- C/ Z7 l4 `( E+ y - CMP #$04
* g3 W( V' A3 W: j9 e - BNE $FF52
! ?: Q8 b( x- s5 l; G - LDA $6010
' O, b4 @+ v. B1 o( m6 f - STA $0042: w/ u6 y1 g4 P* x' `
- JSR $BC00
% x6 n+ y7 O, @4 Y6 x! p - RTS6 Z4 T/ \5 F( F
- ADDRFF56:
5 N: F) Z5 A1 | - STY $4014
& J% E2 q% v$ t F& O - RTS3 Q5 X$ {' l+ d# S) J# r. c
-
4 D X/ t- U6 I f8 e
复制代码 内容:2 k% Y* x) k, P( B. K" k
1.关卡选择: 标题时,左或B减,右或A加;
3 o# ~4 J0 w- t5 O 2.一击必杀: 暂停后,按B键切换;
& B+ |' U% T2 w3 l. h% J" { 3.无敌锁定: 暂停后,按上键切换;
: @. R9 m' |& f6 S' J/ i 4.生命加满: 暂停后,按下键切换;3 a3 [/ j( I6 E# S8 d
5.血量锁满: 暂停后,按右键切换;' b8 s; a7 J5 ^/ x
    
1 h+ g( F" g' [; r1 J
8 c5 U8 x4 j" m" f5 g( r, LFlameCyclone.ys168.com
: S8 z6 c4 g2 J: e; f/ L9 O: L7 J( Iwww.nesbbs.com
6 ?$ E5 [6 S/ O0 R+ c! f
# |6 v2 S. c6 h9 \- x8 A |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
2
查看全部评分
-
|