|
|
本帖最后由 yandagui 于 2017-4-2 13:21 编辑
0 q& p ]3 ~& O2 i; J2 w
( [4 |" d# P( B% Z4 p- [[FC][忍者神龟2][END选关]8 d% X/ j5 ~& D9 C
B) Q9 ^5 ~# a! p0 M5 \
时间:2017.3.31; Z! y. P+ s% f! |) `
作者:FlameCyclone- .ORG $B9E08 n) S7 k" v% p1 @( z! H; X
- ora_data:$ t/ L- W) G/ V. v) z# j- f
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
) D; t4 _4 V9 i6 l& g% d - and_data:* f) B2 m8 x' l+ e) Y
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF8 @ q7 k$ b7 m3 u M
-
$ M& R, Y& r; w7 C - button = $F88 F2 }, }! n$ O: l3 `6 h4 l
- flag = $6000
5 z$ h; |8 K) L& @0 p( V. U) | - pause = $3D( p, a# s5 L! k% V7 b8 w
- + P9 U& H7 |' j3 R1 v. P1 u/ t- E
- .org $BA00
2 C6 ^8 l5 G& N6 E: E% e/ \
+ f# Y) T! |7 ?5 h! C- PHA
1 T, K7 K3 n4 h9 m, ^4 e! @ - TXA: Z" i1 o+ I! q2 a. L0 ` y
- PHA
# l$ F5 k( b$ }: f w - TYA5 f* ` C" l. r) X I/ t
- PHA" V3 x( z( d' Z4 G) ^9 c
- JSR KEY_OPERATE
C; _0 H; D, y5 d+ ^) ~3 Q - JSR INV% f% D1 C+ u" J6 ?7 u
- JSR LIFE, m' G* R6 q5 o: p# ^; n1 |6 b
- JSR BLOOD
! Z- q9 r7 F+ K# p5 i - PLA" r3 O, N" W3 s5 J5 m1 r. a
- TAY
/ k7 l: p/ a1 L7 z" [ - PLA7 v9 }" e6 K4 m& q
- TAX% W5 V3 `5 v- w. y3 |; [' s
- PLA
( Y8 A% C E! Q4 h6 |) A - RTS8 o7 E; h" D+ U6 {5 b# A
- KEY_OPERATE:
, V! {; \3 L/ P$ y6 [& W - data_protect:
) T* \8 d) o a$ S& W1 I - PHA
. n9 R E, i8 I$ L& w' A - TXA$ I6 e' W8 T1 x& p4 s, ~/ W
- PHA
9 B3 Y% y! p: y; x0 @7 }* O - TYA
3 z2 ^$ X) O6 A - PHA0 h; j; d4 T. J3 Y) ^7 S" G! z
" i( m9 G0 d; _# V# y- FLAG_CMP:" n* J& Q6 `0 j9 e4 @" d1 Z* Y1 j
- LDA $600F
+ i6 c# F6 R* O1 D) a5 ~ - CMP #$7F ;标志数据初始化条件判断' v2 s: @9 q0 a, @" ^0 n9 {
- BEQ pause_cmp
. Q r; Y8 ]' p3 Z% {4 t. N - LDA #$805 H) V: _, `; _: o% M0 X p5 ]1 L
- STA $A001 ;6000-7FFF写入启用
. e1 {1 X& H/ I/ u/ F - LDA #$00 S; R( d, b& t$ _* I
- STA $6000 ;数据初始化! ?7 z! `: q# W/ u7 l. A6 x
- STA $6001 ;数据初始化
/ F: T, u* g, t% R b7 e E2 C9 y - LDA #$7F, N+ z, ]6 }/ W. g
- STA $600F0 ~" K5 W, i3 ~8 G6 S& g9 q" J8 s( u
- pause_cmp:
1 Z9 f" d+ d2 O$ p+ K) D - LDA pause5 i- X& |+ f2 N$ ]
- CMP #$01
4 H- _; _! G6 S4 u - BEQ button_press
( q' D, j7 C* i8 l - PLA. R- |/ f: t/ I% _7 Q. S
- TAY
# L: {8 e. B1 f; m; U - PLA- d- V% i9 O, b, Y/ C0 l( K$ |
- TAX* ]4 x' z* I% y0 i4 L
- PLA
$ C( h- L. ~1 ` P$ V( x/ e - RTS Y' s4 m5 B; Z* u
- & S1 G) x/ Z- }/ \
- button_press:7 h- e7 O3 H5 G/ ]
- ini_Y:6 e% q4 t+ F, T
- LDY #$00' n3 b; N8 P0 G$ {+ U
- button_cmp:9 O+ P1 A- Q! C1 G: p
- LDA button,X# d M( _8 b1 u- N
- CMP ora_data,Y7 X0 t! c" ~* d, u4 ^( K
- BNE count_Y_cmp
% G' y( ?, G! `" d - flag_cmp:
$ a# C2 u8 N6 ~ - LDA flag,X
6 Q [ e! v$ u G" o - AND ora_data,Y
7 m) Q9 ?" B6 S# K5 n - BNE flag_and! \" O' B; @3 {- ^
- flag_ora:
+ J9 |0 s% P" V - LDA flag,X- H4 k- v8 k, r
- ORA ora_data,Y3 j7 C6 @7 |- R" }3 O/ @- W
- STA flag,X$ B$ _( K1 P4 v' z# l( }7 }
- BNE count_Y_cmp3 D2 a. ?6 I' o4 c
- flag_and:
- z" b+ C1 w7 s6 [# k S - LDA flag,X0 R( C; r& `& O# k( a/ B
- AND and_data,Y: e/ `0 j! S5 n
- STA flag,X4 m$ J0 ~# t \
- count_Y_cmp:1 q4 u) g7 S7 y) \" [1 g
- INY$ @; I5 I1 ?0 i Y: A+ ^3 p1 j
- CPY #$081 x, O; q: ^$ T1 H5 v3 l# f
- BCC button_cmp, R$ R! T0 R' |8 l/ t4 J9 e& i
- $ P/ }# L7 [, B2 X7 a
- data_extract:1 s" F: G8 O0 Y4 r2 T; @& K
- PLA
' g3 M7 ` M! k2 G# ^ - TAY
* Z, A7 @/ |! E9 Z% f - PLA
8 ?1 x( V" o( F: t/ R - TAX
( I8 x( m i1 S7 A - PLA
$ I K( L/ @) W4 r -
0 m( d4 Y+ z m3 ? - return:
2 V4 m% v( |% d' X K - RTS6 J4 L. a B1 ?/ f' f- ]
- - o4 s4 h0 ~6 G8 H4 n
-
* L, Z6 R& |. {$ v/ B9 \6 W - INV: ;无敌2 |8 D: i! ]" l
- LDA $6000,X
* `: j& \6 [! b7 k a3 X# C - AND #$08
: J1 [! u& ~; _7 f - BEQ INV_RTS, k: ?6 C4 o V7 o8 G) w9 f
- LDA #$05
4 J( R$ u' \' O - STA $93,X* I* j$ b# n) U5 J3 @! h
- INV_RTS:; C( c' h' o4 j+ q* I5 }% n! ]
- RTS: J) D/ j1 a1 h) g" T
4 D8 j: L. ]" d; Z' }; X! A-
/ y _% ^3 w9 n1 x( T( k9 L - LIFE: ;生命
9 S/ b- |3 _+ ]4 w* a - LDA $6000,X% {' |4 @# U- g) e1 m
- AND #$049 E, M9 J5 c# ~5 N. h0 p7 u
- BEQ LIFE_RTS
3 j. h' ^- g) g: o7 t6 P - LDA #$09
) l: ^ I* m. f% r6 k, i - STA $4D,X1 L9 ~3 V2 B+ G6 H4 ` D3 z
- LIFE_RTS:) Z" p5 r/ z2 v+ Q
- RTS5 g8 S Y% Y; S- Q' K- ?1 ]& E
- $ y+ h2 Y, g$ R. _5 o& C
-
! B$ U' [, L% \+ E) ?2 ^$ \ - BLOOD: ;血量) T' L' d' j) g. Z& B, n
- LDA $6000,X1 K3 s* D) n8 u" r
- AND #$01
! v+ d, l+ H+ Q5 @5 {6 V, Z - BEQ BLOOD_RTS2 s9 @2 ]$ D! a
- LDA #$38( t2 w3 v$ `: G9 e
- STA $0568,X5 s9 R; @9 ^: \( Q9 V
- BLOOD_RTS:
6 q+ \6 J2 N$ t1 A' |" h - RTS
. M, m, ]& L. A - 8 x1 z7 g8 ~: k/ `
- ! @ m# d9 k1 j
- .ORG $FEFE4 H/ y) }/ u+ n" b
- JSR $FF60
* T+ ~( ^+ Q+ G - NOP! O/ B' k/ v2 [- b; q# r( M
-
4 E! N4 D% u4 R - .ORG $FF601 {) F$ p- `3 K/ m% b
- STA $F8,X, L% ]6 s! T8 v( L7 [
- STY $3A,X$ r, v) ?& A6 G5 g
- PHA
5 ~, F' y2 c- k- ]: M* U) Y - TXA0 w$ j* f1 f) t9 V1 ]
- PHA
, D4 V+ r& V+ n - TYA
1 z' R4 H) B, [3 O - PHA
" B/ G' S- r* {! l' @ - LDA #$02
- x3 O3 f3 _$ g% J% f% R: @ - JSR $DB11 ;调用系统切页( w9 t& p2 R+ t- d0 L
- PLA
6 O& m9 h( C9 H1 h8 h9 } - TAY
3 E' E; i) S, S* ?3 r# d - PLA4 E* m8 c& ?5 Y6 m- h: v
- TAX+ s: j- \) X! ]# _6 t$ R
- PLA V0 q D& b, Q2 f0 E( a
- JSR $BA00; X, L9 E& Q9 R6 X' [
- RTS " `3 p \0 C4 V( }8 S' m, I' J
- * e. x$ I: |9 S" r# X, ~9 h, {
- ;[FC][忍者神龟PPU][END]' H% Z$ i. i& j/ |6 c6 g0 D
- ( Z& ^, P6 x/ S6 q( l
- .ORG $BC00
6 G% G' m% ~& y, ]$ H! o4 v) U -
: z4 O# R; k }+ J) O - STY $4014 ;补上覆盖的精灵写入指令, C- U" F8 g( x! Q
- PHA
$ }: e( H, j1 u( M - TXA
M x* ]7 G" t, P - PHA
+ T" L9 r' X$ u. {/ W6 k- d1 D* D - TYA8 s# G0 Q' T2 y) X+ v' }+ ?
- PHA
/ D! V. C6 K! m7 F% q - LDA $018
& `% H) z2 E3 k - CMP #$01 ;比较是否为标题画面0 u# b* D5 j: ^7 W, L/ r
- BNE RET
1 S2 t* n& ?% e/ i6 Z! Y: i( y# T - LDA $019( f. d- Q9 a6 a' ]+ C: s2 L/ {
- CMP #$01 ;比较是否为标题画面9 ?0 x/ e! w' Y' W' u
- BEQ PPU_STAGE
( h" z& n7 e1 V9 x - RET:
8 }$ U" M$ g- p+ \; p K/ E5 a - PLA
, V1 z& {% x2 H' m& r - TAY
/ r; w3 _# i9 c7 z - PLA3 q- n$ J& T- _
- TAX
) c* c7 H. O+ K3 B: `3 w+ `; n! z - PLA
$ Q7 L3 I; O0 E - RTS. i- _7 s0 }# P( q, }2 K' c8 ~
- PPU_STAGE: ;STAGE显示程序
4 D- y! A0 y( a5 S; J$ O! G - LDA PPU_ADDR_DATA( e$ z* Y( \* F
- STA $20069 N3 O: C1 }' \; _/ ]2 u7 }! v/ z
- LDA PPU_ADDR_DATA+10 X& b$ ]2 \' `4 x7 b3 y2 W: g: E
- STA $2006 ;坐标设置
* [+ H- j. t8 K, R - LDX #$00
2 Z& c, G; ^ N) ~0 S' ^( y2 ^ - PPU_STAGE_WROTE: ;写入STAGE字模3 \5 k1 z) m7 V7 Q
- LDA STAGE_DATA,X
\+ H% L6 a& i - CMP #$FF$ {" w# H$ O- P0 Q1 ?
- BEQ STAGE_CMP
* A7 U& N, K) } - STA $2007: V1 Z5 ^- s. `5 J/ R/ j
- INX
E& e2 E/ p( j! p& R - BCC PPU_STAGE_WROTE
5 h' C' z C1 S1 A1 p) n - STAGE_CMP:. B, @4 X5 s Z& Y
- LDA $6010
/ B3 r) V3 n) |+ ~+ I' r1 \2 r0 | - CMP #$FF ;关卡数据初始化条件判断
4 D1 H) u+ w, t - BNE KEY_B
! L: l. x k+ ^ u2 ~' ] - LDA #$003 x8 _. o& f2 L9 }
- STA $6010 ;关卡数据初始化
8 v7 C7 O0 D0 n) b! @ - KEY_B: ;关卡减少
/ V5 Z3 ^3 l2 i8 r! F. U - LDA $F8; z3 D/ i! {* J# Q# S _+ T C
- AND #$42 ;按键B或左减关
, q% n+ r% F. Y$ ?2 B - BEQ KEY_A- M! ]9 p( o6 I v7 A* A9 o
- LDA #$FF
5 v K( F4 L# U f% e8 h - STA $40% A/ o* T/ f9 L, ?) m, ?: X* D3 t
- LDA $6010
1 ]% d W9 A( T0 @" v - CMP #$00 ;关卡比较
& U# ?( Z* v, O% `9 o! {: l - BEQ KEY_A# m, _% G$ m5 U: R. `
- DEC $6010 ;减关$ k8 a$ \' h2 i2 D2 ?
- LDA #$57) S4 Z- w) X& t, m, ~# [4 F
- JSR $DB52 ;按键音效* t/ w2 c/ J2 d+ a; _% Q
- KEY_A: ;关卡增加
2 y) P5 n# ^7 |6 R9 j7 t) F0 | - LDA $F88 L) p6 g; R/ |" P( l
- AND #$81 ;按键A或右加关
8 _% C u/ o& v - BEQ PPU_NUM_WRITE3 f8 N. C( E- S/ E* f I* u9 G3 N+ A( E
- LDA #$FF
) d$ U( B, ], \% p, Y - STA $406 G& E6 Z5 B% Q4 j
- LDA $6010
* W9 B0 Z: y9 _0 [2 `0 S% F$ v4 Q8 K - CMP #$0B ;关卡比较
1 l; B) m$ `* V( x - BEQ PPU_NUM_WRITE( |6 B% n/ V* }4 m+ m' q8 m6 x6 l+ }
- INC $6010 ;加关, ?2 q7 J+ T5 T' s, l+ i
- LDA #$57# J9 N. M, S: V( ]* E' ^
- JSR $DB52 ;按键音效
' B0 {# _* ]4 g6 J. U - PPU_NUM_WRITE:
5 u6 n4 k1 Z% d6 E% ?4 k. [ - LDA PPU_ADDR_DATA1 ~( x7 t, N) a5 a# P
- STA $2006) l: I2 |" O& F9 m L
- LDA PPU_ADDR_DATA+1
|) A4 Q( r0 J$ E; p! y9 d b# ~ - CLC
; l) h: }! U r( e% B2 |: | - ADC #$06
% ?1 ?. g: v1 E/ _8 ?' O) D - STA $2006 ;坐标设置' J$ ~7 D+ g `* v5 s9 S. E
- LDA $6010! s' M; ?- y/ R4 T
- TAX
/ F' D: Z$ X! ]* e, w - LDA STAGE_D1,X ;写入数字" N H2 \. a7 O- }
- STA $20077 f0 G3 N- _" x/ [9 V7 ~" b7 s
- LDA PPU_ADDR_DATA4 x3 Q7 D O4 f. G- R
- STA $2006
; u; {- j0 W8 _ - LDA PPU_ADDR_DATA+13 M) f9 s) h7 E3 v
- CLC
" u1 A$ R: Z+ H3 } - ADC #$0B4 P& O% q1 o" W) x* q
- STA $2006 ;坐标设置% s% F! I8 [) z- e6 t2 w2 V/ b/ \3 y
- LDA $6010: ~$ A! J2 k% b) q' R5 T
- TAX
/ S2 r6 N& Z3 \; ~( C* T* y - LDA STAGE_D2,X ;写入数字
9 y( I( I" _2 i0 S - STA $2007
1 x; G2 Y5 }' e0 X2 c! T - STAHE_WRITE:. U9 H, s" q a- x: n& {9 M6 N
- LDA $6010
* \6 O$ ? _$ d2 A - STA $42 ;初始关卡写入
) c0 ]; j0 R. g. H - PPU_RTS:
- j* [$ x7 N- ~" f' k# s9 j - PLA
* t4 V. h& B; J- N$ L - TAY
3 L0 t# w) |* a% u1 W# R/ e - PLA3 z: U# H# Z, t! S7 a" K5 H
- TAX
% r8 ^& w+ M# u$ u( H - PLA2 _" m B6 ^9 ]9 o. l6 E& B5 C0 j
- RTS5 Y1 | T6 ? Z" b; S- [5 H
-
" @2 M, i8 b6 n, n# G. ~. C% k -
8 D, L/ l$ C( x; a3 h. h - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据) Q, G: U# e2 Z4 u: z v% X; y) U7 ~
- .BYTE $1D,$1E,$0B,$11,$0F,$00,$00,$00,$1E,$19,$00,$00,$00,$FF
% @4 G: h" @6 M; k# V
0 W X1 O; t1 c& q. D- STAGE_D1: ;关卡数字
( h$ R+ o9 N) v - .BYTE $02,$02,$03,$03,$04,$04,$05,$05,$06,$07,$08,$08! W6 X; `+ d% M) I9 U
3 Z1 e! r7 ~% J% C! s7 Y) t- STAGE_D2: ;场景数字
. `! ]5 t4 F: E. S - .BYTE $02,$03,$02,$03,$02,$03,$02,$03,$02,$02,$02,$03' c+ b+ |9 n/ C |. q& d
-
) N3 L0 Q% Y" W) `2 @/ u6 v - PPU_ADDR_DATA:) X. |* }9 m8 L- p% E6 c1 z. }
- .BYTE $23,$4B
- ~* O; W: t) h/ b1 d - ) n+ W8 x6 }; \: s1 d
- / o, _0 |6 n- ~7 u3 a2 K i# _
3 l. W# J y8 I+ h: F* Z
& H+ c P3 f9 [; A- @
7 V. v0 E2 p x( O, g) q' {' g- .ORG $FE21 4 u. |+ O, j' i' a0 s7 `& }1 {" q
- JSR $FF409 B4 g3 M0 c0 b
- ) n$ [1 i% I% }- |
- .ORG $FF40* k* Z2 k" W$ e) i9 {1 C2 @7 p
- LDA $BCDF) {# a$ J9 B* a; M
- CMP #$7F' d, y4 P I6 V, ~" Y, u9 K! d
- BNE ADDRFF56. T/ G* ^8 d4 N/ p( W# Y7 W% Z
- LDA $0018
1 M; C# R( L% T' U - CMP #$04! v4 f( o: ^) ~
- BNE $FF52
7 E: ?4 |9 ^' @6 x - LDA $6010+ z @' _/ k; I, B! x J1 Z
- STA $00425 H' I* a/ Z' w4 R5 n6 {; A' T5 k
- JSR $BC00
" s" x; G4 ^6 h - RTS3 Z% u7 }5 X! {% O5 G
- ADDRFF56: ) Z+ C2 a4 `6 i6 {% ]; Q/ k- Z
- STY $4014
+ [& w4 F% y. c# B5 e ^ - RTS9 ^/ \1 Y1 I% \
-
, h u9 p0 m6 R V, q$ m! }
复制代码 内容:" C# o9 o, ]* ~7 [. E+ m
1.关卡选择: 标题时,左或B减,右或A加;0 A% R% r- N2 K0 c9 R$ r( V ]) p
2.一击必杀: 暂停后,按B键切换;! k$ P; w; y8 o! X. u3 V
3.无敌锁定: 暂停后,按上键切换;
1 A6 ]0 e# i: u5 n1 D 4.生命加满: 暂停后,按下键切换;/ c! q& q2 f$ s; e$ A* x3 a
5.血量锁满: 暂停后,按右键切换;
! z; X9 b A: a0 G+ @    
" l$ M U* K. {( R4 M7 X4 p8 R4 n5 N6 X# O
FlameCyclone.ys168.com
1 V4 q1 W9 h0 N$ @www.nesbbs.com
' ?( w l+ X4 Z% Z& p* m
' @& N- { r! d' R) ~ Y D& @) u |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
2
查看全部评分
-
|