|
本帖最后由 yandagui 于 2017-4-2 13:21 编辑 6 P6 [; |7 c) w3 Z
- e* K }) e8 E7 Q
[FC][忍者神龟2][END选关]
6 |9 r' b [! L8 ?# {* @. \' m- w5 L* D, r! f9 o
时间:2017.3.316 k# v! B# T% j- w8 N
作者:FlameCyclone- .ORG $B9E0# @8 i ~9 k& _
- ora_data:
3 z! O8 }& [; H3 i - .BYTE $08,$04,$02,$01,$80,$40,$20,$10- M& n: p' q6 U9 D F' n! A
- and_data:+ D$ t R9 Z; T. c4 @; x; n. G/ s
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
' y u- g, y5 q1 t+ V -
2 z, o8 w4 G) {% ?1 E, p. L4 _' c- [9 z - button = $F8
$ ]% |& v% \& m" R: B' j0 h - flag = $6000/ d& s6 L, f) Y, j; b3 V& X5 q
- pause = $3D
* ^5 n5 A& A5 E. N - % k* }. P) L, e9 x, V
- .org $BA00
; f+ N, t6 v/ P1 |
/ b- H' v* i3 a0 M- PHA
- Z! f a# v( X+ O" _ g+ _1 h T - TXA" a9 p% \) }3 p
- PHA
% H# N2 }' G- i0 {/ [+ q - TYA8 z! e4 r" s: _0 c' [2 a* r$ g
- PHA$ G( ~( m$ U" l4 o3 v% N7 M
- JSR KEY_OPERATE8 e. c( U( c$ ~" m/ t
- JSR INV" X- V# t% `+ q: ^9 V& C
- JSR LIFE* i2 G5 E _/ f
- JSR BLOOD
; }/ I& L o2 y* y; ^6 q - PLA
v" E2 c2 E" O9 H0 t - TAY" h) O6 a6 a" P" u
- PLA
+ X* P% I2 d1 W; ^3 s2 ^6 W- X - TAX2 _$ A4 N2 Y& B% F2 Z% P
- PLA
; z1 O, d. v! `. E" u( a0 l - RTS- h7 L. X- j, u# F$ P) }
- KEY_OPERATE:" @% Q- A3 J" V1 l1 Q& O
- data_protect:! r% D9 W5 _! _9 ?8 n- v* Y; c
- PHA1 M; q& P. j8 s$ _
- TXA
6 o* ^" V( ?2 H7 _0 i7 J - PHA
8 q6 u4 A; n+ n9 i' W - TYA
; x( x$ K; W; [ - PHA
Z3 H" C$ @# ?9 C3 L# l! J - , r$ i9 r4 f5 ?$ [; j f! `
- FLAG_CMP:% ]* H; E! e: D5 @! `" @. w/ ^
- LDA $600F. ^- b: Y- E. M# r3 i
- CMP #$7F ;标志数据初始化条件判断
$ D9 S* C$ `2 w - BEQ pause_cmp4 w5 ^: A4 i( \" a1 r2 B
- LDA #$80- C+ M: p; \% g
- STA $A001 ;6000-7FFF写入启用' P0 `% ?5 H" \* j# T, Q# A
- LDA #$00
* E. ^, O8 k: X4 V# n4 g( ]6 {3 t - STA $6000 ;数据初始化1 d3 ^: d. f; ]2 }+ g0 [
- STA $6001 ;数据初始化
+ }2 [) ]* e: i6 q - LDA #$7F
) b+ B I% Y1 N G# j - STA $600F
0 O3 Q4 t6 V) W \* y$ w - pause_cmp:
) |/ u& O' N4 K3 C" M6 D - LDA pause# Y( \9 ]9 _- `5 ^0 }% `: f
- CMP #$01: P$ u, m; s& P- o, E1 R& M
- BEQ button_press Z0 o9 W; b+ N$ g4 i; j& q
- PLA
- J7 @! J+ ~) X5 n8 x$ G& ~; s: \ - TAY- H Y& B7 o4 ^5 V
- PLA* o O) D+ a/ C' T8 x
- TAX3 `; e9 U) }. r
- PLA) C8 c( r; l- L0 b* X" |& M
- RTS1 s; x7 M1 j) f$ I- p
- 9 ~: O: L) k1 s( k, B, C9 c
- button_press:- O$ P% M# e$ u# V- r2 C4 |
- ini_Y: A% \0 s/ I \ w2 m
- LDY #$00: {4 Z' x E! _
- button_cmp:7 q/ w6 w3 z3 S5 E8 }" S+ w
- LDA button,X
; M$ R- K* I. q- x. N. L - CMP ora_data,Y
/ Y, ]. `8 s8 k; p* D8 c - BNE count_Y_cmp( a9 K- p" m2 Q8 O
- flag_cmp:2 G: i& V# ]' s! @2 {
- LDA flag,X
9 e3 c9 H& A4 L5 I) `! m - AND ora_data,Y: x( ^; d: }. o
- BNE flag_and+ P. {7 I! i; h- k; w9 d
- flag_ora:
; w7 a& B W- G, \1 ^, ]* ] - LDA flag,X
# V5 M. O" H+ A: ` - ORA ora_data,Y
, D: T2 v" o$ x6 ~, U2 y a - STA flag,X& G; \* y1 G& V$ i3 a( K/ P
- BNE count_Y_cmp/ {& M B9 R, @# c+ q. q4 h
- flag_and:0 x3 a7 C7 J) a) @
- LDA flag,X
* U6 q! L/ ?- l" v% v$ G - AND and_data,Y
: G3 H/ R/ p. u2 N! h - STA flag,X/ Z" E" u1 a) a) r: v
- count_Y_cmp:. B0 M, j* e" t v
- INY; {" X% D9 U; U6 q8 u7 p) K ^" Z
- CPY #$08
) K( S7 h" d( I! [! h. R# f3 r$ i - BCC button_cmp* n) C1 x8 E- \3 i
-
7 c* `+ b$ X- n( t* d - data_extract:
/ y9 A6 {% t# V+ z. ^ - PLA
7 Q# A9 a( ]( g( E - TAY
1 t5 p8 B- c% m) A/ v" f1 l - PLA
( {# z* Z7 M4 ?$ ~ - TAX
v( N5 ?. _; S. `, h4 |3 m - PLA
$ ?) I* G3 ]8 x( d4 m -
9 u9 h- x i6 p6 R7 Z/ i - return:% v% k# s8 i- h# s4 _9 ]: @7 I
- RTS ^8 B( l& I; Z5 H% |
- - [* g* N% @( s
-
) B0 W6 J8 J$ L9 J - INV: ;无敌4 z: f4 U, ` Y0 C+ s t+ r
- LDA $6000,X
; B) X) ?2 K4 J - AND #$08( P. H9 c2 J8 _: C2 q
- BEQ INV_RTS* Y2 w& w: z* O) M1 _3 B3 W
- LDA #$05
- n; R/ F& t. l5 j - STA $93,X/ P3 o$ _) q9 X
- INV_RTS:
; O$ |( _6 s: ~5 p# g" F; n9 y - RTS s) p. E: H, X3 @# y
7 t/ O; q6 Z7 W2 B% \+ L- ) a* h. p0 u" E
- LIFE: ;生命
9 [5 j$ g4 U$ t7 Y) w$ S - LDA $6000,X7 z [" w# H. Z; |5 \
- AND #$04
$ f7 p0 T9 j x: q - BEQ LIFE_RTS: ^) p" |. c7 ?% ^( Q# o
- LDA #$095 w4 b2 G) E. i5 u) b S7 a1 ?. r
- STA $4D,X
9 M7 n5 g5 Q$ z - LIFE_RTS:1 f, _9 w' V7 S
- RTS
+ ?( i6 P% a S9 f/ } Z: y3 X
) U1 D1 T7 i; P O- ! f8 g1 a0 t) t! K8 t0 H" @
- BLOOD: ;血量
' l* m$ M+ K2 X6 x - LDA $6000,X
p) i2 ]$ i- t' E! U b c* \ - AND #$01) g2 `3 A* l) X2 [9 [1 ~" B3 Z& r
- BEQ BLOOD_RTS# c# V( b. p9 _1 ^& V7 L! }
- LDA #$38
9 X8 b% p- a9 f - STA $0568,X
1 W$ V# c# A8 E* ?7 o& f/ a% K- _ - BLOOD_RTS:: `' e& k2 M3 }* y" J
- RTS, w& z1 }; ?( b" t, V. Z
-
0 i9 l" h B" v6 a" u# r -
5 p: E8 U( E: x - .ORG $FEFE' E8 m/ T. Y, m) r0 z# |* H$ A
- JSR $FF60
* q8 |' x, X! A - NOP
- \# U- V4 n) H -
; x% a- e$ ^5 T& `3 t; ~* I - .ORG $FF60
" g0 \; b/ Q: ?& X" Y' ^ - STA $F8,X
9 _5 |2 y% V& x+ b - STY $3A,X
# k1 v& d/ @2 ^- Z# v - PHA
9 n6 M9 i1 b9 S/ Z - TXA2 y. S" Z0 v* }0 N& K7 f
- PHA/ x( g! r6 w1 b4 H
- TYA0 U' j# `3 [. P* ?9 u( c9 m
- PHA
/ O' A C+ g4 f9 o - LDA #$02+ D+ C9 E8 U7 A" |; U8 M7 i
- JSR $DB11 ;调用系统切页/ |% [! x7 v' G. f; K' _1 [/ b t
- PLA
5 o- O( `# U1 J% l9 v& S - TAY) }* S5 j* f* H& n* b0 g# c* Z6 E
- PLA2 T& A0 t6 d9 M! L n' X# F
- TAX
h2 d" b$ z. d& K8 P - PLA8 X/ J0 E4 w# N7 M) }1 ?; H
- JSR $BA005 ^1 Y* f* j6 l
- RTS 3 }0 P9 ^. X3 Y; N6 ]
3 ~0 e! K8 I% M. J% B. u- ;[FC][忍者神龟PPU][END]
# A! {0 N$ ?* P4 Z" ? - ' F3 l7 ]0 z- J+ N$ f
- .ORG $BC00* g+ e$ J, E* ~9 ^/ q; d1 h& Q
- ) L; ~& |6 Z0 H9 T8 S4 Z, j) S
- STY $4014 ;补上覆盖的精灵写入指令1 P' a1 G; \) }7 d' m
- PHA
7 D' R c( ?+ }% y. b' E% D+ |$ ^4 ? - TXA# e! G/ |. q8 `# i& C
- PHA) C. G- N9 e' o6 ~" p) ^" p( Z. z
- TYA, D, o# H" n# E P% u; B& l
- PHA( Y5 h/ ]. j! t
- LDA $018) k9 N9 T& Z9 K8 ]; }" W# g
- CMP #$01 ;比较是否为标题画面/ @( \$ Y5 G# ?$ k: \
- BNE RET
8 n$ l9 V7 e$ b: i - LDA $019# v: {7 ], d7 m6 \
- CMP #$01 ;比较是否为标题画面
. c" I, Z( S8 l* N: }' S" p3 d - BEQ PPU_STAGE
5 G! Q: n) v5 ?- K$ j! v0 Y - RET:5 Q4 t m. T2 T P. y H
- PLA
[# v) o" D5 n( i) b$ M - TAY
, U/ k" w$ T r. M% D# L; c$ [9 F4 S$ Q - PLA
# A' G/ A# l7 u- o f - TAX
: H: R; k3 U6 u5 y. ?4 o5 p1 T: Q. k3 L - PLA# I/ q) K! Q3 g5 n# ~ j
- RTS! W+ q+ i. _3 E
- PPU_STAGE: ;STAGE显示程序
9 c# U# z. y, l0 d1 ]3 t4 I - LDA PPU_ADDR_DATA
1 R) N A4 Z+ e5 P - STA $2006
' V& b \. ?! @: ~ P; Q - LDA PPU_ADDR_DATA+1
& `! g8 M" o1 m9 J& v0 v" J - STA $2006 ;坐标设置$ v0 D1 J8 V6 X# j4 i+ B7 U% D# v
- LDX #$00; C9 X( L, v& E7 J
- PPU_STAGE_WROTE: ;写入STAGE字模0 B, D6 j( ~( `- I. l0 j0 v7 z) f
- LDA STAGE_DATA,X
! \; G# s y& q - CMP #$FF
/ v7 C' E/ n, s) s( Z/ j" z - BEQ STAGE_CMP
8 P4 F4 m% h( Q! ` - STA $2007
% f3 u) W$ T; @1 j& p! O: m - INX8 x; U1 p b, Z6 ?- U
- BCC PPU_STAGE_WROTE
6 B8 [, N: p5 A7 J: Q" a1 m - STAGE_CMP:
0 u4 n2 J8 p9 u4 | - LDA $6010$ T, C* `' p/ O: h7 z
- CMP #$FF ;关卡数据初始化条件判断- h1 S$ Z: H. r9 [) `
- BNE KEY_B
8 k, P# {. F$ u/ N: l - LDA #$00
' G& i/ v! }- \+ B4 @5 p1 W9 R' c - STA $6010 ;关卡数据初始化
( w3 a7 o, M) i/ S+ f6 ?) T - KEY_B: ;关卡减少
" @0 {3 s$ z$ x* }& ^3 \. _1 X - LDA $F8
+ w# J" x0 M" g+ N( q/ N4 ?6 R - AND #$42 ;按键B或左减关( m {; S+ W6 ]% \
- BEQ KEY_A
0 H2 t+ ]8 e9 \0 _; l - LDA #$FF
& U6 [ D& |+ F1 W! P - STA $40
6 u4 X6 s# s3 F0 S# F ~3 g* _ - LDA $60104 y( d! P( ~' x8 o
- CMP #$00 ;关卡比较: k: z9 `, ^1 B5 }& `- i* \% @& P
- BEQ KEY_A
9 W, g' ~; ^7 Y/ c: j4 m* w - DEC $6010 ;减关+ j; |! E0 k1 m J
- LDA #$57
5 i6 y. e1 S) ?, K - JSR $DB52 ;按键音效
U3 G% B$ s- V: k& P4 e, U! A) m$ F - KEY_A: ;关卡增加
" W, h& ]: I/ X+ e - LDA $F8
+ \; O% i* g; N r - AND #$81 ;按键A或右加关# H- _, j) Z: x( M3 {1 w* e
- BEQ PPU_NUM_WRITE$ U' K: M% g1 G8 k- G/ d
- LDA #$FF- t/ S/ X. B! i0 y
- STA $40
1 r& h8 e' i! k8 _ - LDA $6010' n% J$ F5 v1 v a
- CMP #$0B ;关卡比较2 k/ ]9 L$ }9 f) x N" j& N4 G
- BEQ PPU_NUM_WRITE+ {9 N: F4 z8 h- G
- INC $6010 ;加关" Q: |* ~- p8 ~' Q$ l
- LDA #$57
3 ^2 i) p6 j: b1 k& M8 ? - JSR $DB52 ;按键音效
% D/ R' ~( Y/ {7 h [ - PPU_NUM_WRITE:
& E2 Y) r/ ~4 Q% ^ - LDA PPU_ADDR_DATA4 g) o. y' p" @3 N
- STA $2006
" Q+ ^, Q F4 Q - LDA PPU_ADDR_DATA+13 K4 n6 S6 P0 K9 T% {' z
- CLC* }" G$ n" P- U3 m$ [! i
- ADC #$06
# {7 F1 U4 @, Y& B& s* ^ - STA $2006 ;坐标设置
/ N7 C) T$ Y3 k! p& M' ` - LDA $6010
- y. I+ T- W( y, D5 N; g/ y+ T6 G - TAX3 Q9 {% g2 ]3 V" S( E6 b- U) U
- LDA STAGE_D1,X ;写入数字
8 o3 J7 C/ s4 \: {7 t! h - STA $2007
( h6 m7 f" a7 D: t S# t - LDA PPU_ADDR_DATA
# N0 q& ~0 N3 M) ~ - STA $2006. z1 l& ~- Z6 f& H1 R( A4 L2 t
- LDA PPU_ADDR_DATA+1
/ x: E9 X' W# X. d7 s - CLC: e P/ c/ _) `
- ADC #$0B
$ ^' s" w- K. y: N# j f3 b - STA $2006 ;坐标设置
9 j5 t' j0 v+ z& a3 A - LDA $6010 j9 \0 u2 Q- D5 b- ~
- TAX
+ h, ^# d. ?2 ?6 p4 R% H - LDA STAGE_D2,X ;写入数字; u! j/ Z: K9 ?1 a$ j
- STA $2007
& p3 k4 j; q- I' l6 w6 y - STAHE_WRITE:
+ @: Q% z! C7 v; d2 S% _+ ?6 Z - LDA $6010) x Z8 U# d8 U0 D! }6 J# ?
- STA $42 ;初始关卡写入
. u) V8 A' m, D/ \ - PPU_RTS:$ @! d+ j$ ]& d) N* c+ l3 z! p" f
- PLA& C V; k6 A. @/ X, `* Z0 Z5 {/ b
- TAY: u4 o7 ?. b7 K
- PLA
) @- t# b4 n( r7 v' Z( q - TAX6 K; @! i/ t$ l, R
- PLA, W( I. i. D3 [( t6 [9 }
- RTS
5 ~$ Z) C) e" L, L( { - 4 |; M' s t R: j/ `5 H
-
. O0 I$ _/ }0 q; `# V3 C% c - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
x! X: T) v- Y/ ?3 @ - .BYTE $1D,$1E,$0B,$11,$0F,$00,$00,$00,$1E,$19,$00,$00,$00,$FF
7 S% p2 h3 D8 T) W; b% U
5 ^0 h: J+ v7 j" u$ C5 K' g- STAGE_D1: ;关卡数字
. m7 _4 L# Z% q3 T7 w - .BYTE $02,$02,$03,$03,$04,$04,$05,$05,$06,$07,$08,$08# Y6 l1 t& J: v! f
- / N1 @$ Q ]3 E6 ^( W
- STAGE_D2: ;场景数字$ M* a& l" s, U' G8 x# w
- .BYTE $02,$03,$02,$03,$02,$03,$02,$03,$02,$02,$02,$036 E1 u$ S! a: x. l3 y
- 7 F _8 Q4 {$ B3 K8 ]
- PPU_ADDR_DATA:3 {# L" A& S$ `* }5 ?2 N2 K( p0 E- R
- .BYTE $23,$4B
6 ?; {( y- s0 e& R; }9 ~8 \ -
- v! c6 e9 }; a7 y8 z, M' z
% v$ G: l8 F; w% X
# M; R2 L- n" Z
* L. ^2 N/ c5 i7 m7 l( Q& M
; u+ F. c! p5 t$ E- .ORG $FE21
# B& N( p0 A+ h5 p+ L S - JSR $FF40+ E' W0 h8 K" O0 i2 I9 \5 R! E
- 1 U6 s# C! j' U5 h+ p7 h2 }& [
- .ORG $FF40( W8 L* c* [- }* ?! f/ D3 B8 x/ `
- LDA $BCDF& S6 Q, }7 C0 U3 X
- CMP #$7F9 v+ N! {8 I* W7 _( T
- BNE ADDRFF56
8 Z' D; C$ a/ O2 m2 j% Z" u0 u - LDA $0018. V4 Q& B! y4 g* m( o
- CMP #$04
9 H7 d. D( ^; S. n+ Z - BNE $FF52% g9 w2 z5 t4 C5 R2 T# R) S
- LDA $6010+ _5 l3 [% [4 C
- STA $0042
# \- H; g" `5 n - JSR $BC00& [& C4 S2 m1 R
- RTS: |, @! r5 {& D+ Z
- ADDRFF56:
5 h$ [8 h8 f) h' @" m9 _' C - STY $40147 o+ v) d% h Y+ s! T
- RTS3 a! b% h7 [. Z
-
5 z0 y) e8 ^) i9 g4 V
复制代码 内容:2 ?. R9 N( O5 N+ k' B; s8 o
1.关卡选择: 标题时,左或B减,右或A加;6 ]$ F3 {$ k$ w, q) P$ H5 I
2.一击必杀: 暂停后,按B键切换;
# I# r/ h) y" J0 L# Y" _ i! J" {9 l 3.无敌锁定: 暂停后,按上键切换;2 K0 q) O' r/ ?5 H7 V
4.生命加满: 暂停后,按下键切换;
: T$ J2 ]- v# `; D U) w8 f" P* i 5.血量锁满: 暂停后,按右键切换;4 n; m, v( @$ A
    ( W t4 F5 F. W' r& _7 F
4 V- Z% y+ w$ E2 Y4 OFlameCyclone.ys168.com. s3 S5 L, d' ^$ `( e0 w a0 _
www.nesbbs.com5 H& A5 y( A3 [$ ~
i* S. H s: c+ g! D; u
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
2
查看全部评分
-
|