|
|
- Contra (J) PPU写入程序
$ ^3 s! L0 y2 }; { - 作者:FlameCyclone6 ]# q. l8 R- I: X6 O7 f3 b( ?
- 时间:2017.2.12
% o0 E0 N1 Y- V6 C) O
7 m0 ^" A* Z7 M& L0 o; k$ i6 }- 按键跳转:
# g& Y) v. l# M% k- } - C1EF:95 F5 94 F1
1 i4 N) C* }# \& d - C1EF:20 70 FB EA
& e, g0 E q. g3 n - 0 R. @: d: U0 y, b& x% n0 G0 u
- 滚动偏移:
, i$ R: b, b x* S( n" k$ ?0 w - F936:A5 FD 8D 05 20 A5 FC 8D 05 20
S: l; B1 V' K z3 g' b/ A - F936:20 C0 FB EA EA EA EA EA EA EA
& N- i/ V4 ~8 x( u ? - " _+ A' X" j/ V1 j d5 [5 j
- 背景调色板:$ ^, Y. A4 \. _! }2 c
- CF20:9D C0 07
7 {6 D% S6 x+ O7 k" W0 L8 q/ ]4 S# U - CF20:20 A0 FB. y6 a) u" G( ^& \
- 4 H, F! F& f) r
- PPU BANK号:9 U# @* h8 `% N6 w6 g1 V2 {
- C8C9:9D F4 07
; f% W/ _' p/ B' O8 ^# p - C8C9:20 B0 FB
8 Y, S9 G" O: `, Z( `5 \- }2 e
$ t4 k7 Q8 O3 U5 z2 [4 P8 j- 按键跳转:5 \5 `6 B7 m! y2 E: u9 X. i
- FB70: 95 F5 94 F1 48 8A 48 98 48 A5 FF 29 7F 8D 00 20
& E. f; b o- S/ q( p - AD 00 80 48 A0 00 20 21 FB 20 00 A0 68 A8 C8 20; c3 e6 e* Y% Z9 Y
- 21 FB A5 FF 8D 00 20 68 A8 68 AA 68 60 FF FF FF
- \9 ~: o6 K" m% g# w - 2 R% M! A- l: o5 e$ k
- 背景调色板:7 O4 R6 n" o: q
- FBA0: 48 AD FF 7F C9 FF D0 02 68 60 68 9D C0 07 60 FF
0 y' r4 F0 {6 D$ Y d! a
& ]2 Q; Y9 J2 H- PPU BANK号:
) T. ]! M) Z5 Z - FBB0: 48 AD FF 7F C9 FF D0 02 68 60 68 9D F4 07 60 FF
0 q) {0 X$ k( ~& G* s - 5 O# W* @- v( L5 B' B1 O* ^7 z9 l+ B
- 滚动偏移:: \$ z. L: N( I! [' Q: ]; Y# x! z
- FBC0: AD FF 7F C9 FF D0 09 A9 00 8D 05 20 8D 05 20 60$ H( N( q3 I+ G
- A5 FD 8D 05 20 A5 FC 8D 05 20 60 60 FF FF FF FF
" ^, l B4 S! L6 o& V
! p$ @; g7 o' ?( C- 0 {7 w# N$ I- E6 w
- 切BANK后A000:
$ O9 V" r$ C5 y/ H: C: C: P7 R - A5 FF 29 7F 8D 00 20 AD 02 20 A5 25 C9 01 D0 0A B5 F5 29 CF F0 04 20 8C A2 60 48 8A 48 98 48 A5 25 C9 01 D0 07 AD 0A 01 C9 00 F0 03 4C AC A1 AD FF 7F C9 FF D0 19 AD A0 7F C9 00 D0 0B A9 FF 8D A0 7F 20 3A A1 4C AC A1 AD FF 7F C9 00 D0 DD AD 02 20 A9 00 8D 01 20 A2 00 A9 FF 8D FF 7F 8D A0 7F 20 6A A0 20 3A A1 4C AC A1 A5 FE 8D 50 7F A9 08 85 FE A2 00 BD C0 07 9D 00 7F E8 E0 40 90 F5 A2 00 A9 00 9D F4 07 E8 E0 04 90 F6 A2 00 BD 2A A1 9D C0 07 E8 E0 10 90 F5 A9 3F 8D 06 20 A9 00 8D 06 20 A2 00 BD 2A A1 8D 07 20 E8 E0 10 90 F5 A2 00 A0 00 A5 BD 48 A5 BC 48 A5 BB 48 A5 BA 48 A5 B9 48 A5 B8 48 A9 00 85 B8 85 B9 85 BA 85 BB 85 BC 85 BD A9 00 85 BA A9 20 85 BB A9 00 85 BC A9 60 85 BD A5 BB C9 28 D0 06 A5 BA C9 00 F0 27 A5 BB 8D 06 20 A5 BA 8D 06 20 AD 07 20 AD 07 20 91 BC A9 00 8D 00 20 E8 E6 BA E6 BC E0 00 D0 D4 E6 BB E6 BD 4C E4 A0 68 85 B8 68 85 B9 68 85 BA 68 85 BB 68 85 BC 68 85 BD 60 0F 28 28 28 0F 28 28 28 0F 28 28 28 0F 28 28 28 A5 BD 48 A5 BC 48 A5 BB 48 A5 BA 48 A5 B9 48 A5 B8 48 A9 00 85 B8 85 B9 85 BA 85 BB 85 BC 85 BD 8D 01 20 A2 00 A0 00 A9 00 85 BA A9 20 85 BB A5 BB C9 28 D0 06 A5 BA C9 00 F0 20 A5 BB 8D 06 20 A5 BA 8D 06 20 A9 00 8D 07 20 A9 00 8D 00 20 E8 E6 BA E0 00 D0 D9 E6 BB 4C 69 A1 EA 68 85 B8 68 85 B9 68 85 BA 68 85 BB 68 85 BC 68 85 BD 20 8D A2 60 68 A8 68 AA 68 A5 25 C9 00 F0 12 A5 25 C9 01 D0 0B B5 F5 29 EF F0 05 A9 00 8D A0 7F 60 AD FF 7F C9 FF D0 F8 A9 00 8D 01 20 A5 BD 48 A5 BC 48 A5 BB 48 A5 BA 48 A5 B9 48 A5 B8 48 A9 00 85 B8 85 B9 85 BA 85 BB 85 BC 85 BD A9 00 8D FF 7F A2 00 A0 00 A9 00 85 BA A9 20 85 BB A9 00 85 BC A9 60 85 BD A5 BD C9 68 D0 06 A5 BC C9 00 F0 24 A5 BD 8D 06 20 A5 BC 8D 06 20 B1 BC 8D 07 20 A9 00 8D 00 20 E8 E6 BA E6 BC E0 00 D0 D7 E6 BB E6 BD 4C 0E A2 A2 00 BD 00 7F 9D C0 07 E8 E0 40 90 F5 A2 00 A9 3F 8D 06 20 A9 00 8D 06 20 BD C0 07 8D 07 20 E8 E0 10 90 F5 AD 02 20 A5 FD 8D 05 20 A5 FC 8D 05 20 AD 50 7F 85 FE A9 00 8D 00 20 68 85 B8 68 85 B9 68 85 BA 68 85 BB 68 85 BC 68 85 BD 60 60 20 B9 A2 20 C0 CB 20 DE A2 20 FD A2 60 20 42 92 8B 8D 95 80 8C A3 80 90 96 8B 97 8F 8D A3 8D 96 99 98 8F 80 93 98 80 83 81 82 88 FF A2 00 AD 9A A2 8D 03 07 E8 BD 9A A2 8D 04 07 20 91 A5 BD 9C A2 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 28 A3 20 C0 CB 20 56 A3 20 C0 CB 20 7D A3 20 C0 CB 20 BE A3 20 C0 CB 20 EF A3 20 C0 CB 60 20 3B A4 20 C0 CB 20 69 A4 20 C0 CB 20 90 A4 20 C0 CB 20 D1 A4 20 C0 CB 20 02 A5 20 C0 CB 60 20 A3 9A 96 8B A3 8F 9C 80 81 82 FF A2 00 AD 1C A3 8D 03 07 E8 BD 1C A3 8D 04 07 20 91 A5 BD 1E A3 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 E3 9C 8F 96 93 90 8F FF A2 00 AD 4D A3 8D 03 07 E8 BD 4D A3 8D 04 07 20 91 A5 BD 4F A3 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 EA A2 00 AD 7B A3 8D 03 07 E8 BD 7B A3 8D 04 07 20 91 A5 A5 32 20 42 A5 AD 03 7A 8D 05 07 EE 05 07 AD 04 7A 8D 06 07 EE 06 07 AD 05 7A 8D 07 07 EE 07 07 A2 03 20 AB A5 60 21 23 A1 8F 8B 9A 99 98 FF A2 00 AD B5 A3 8D 03 07 E8 BD B5 A3 8D 04 07 20 91 A5 BD B7 A3 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 21 2A 00 01 02 03 04 98 97 90 9D 96 A2 00 AD E3 A3 8D 03 07 E8 BD E3 A3 8D 04 07 20 91 A5 A2 00 A5 AA 29 10 F0 07 A9 9D 8D 05 07 D0 05 A9 8D 8D 05 07 A5 AA 29 0F DD E5 A3 D0 06 BD EA A3 8D 06 07 E8 E0 05 90 EC A2 02 20 AB A5 60 20 B3 9A 96 8B A3 8F 9C 80 81 83 FF A2 00 AD 2F A4 8D 03 07 E8 BD 2F A4 8D 04 07 20 91 A5 BD 31 A4 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 F3 9C 8F 96 93 90 8F FF A2 00 AD 60 A4 8D 03 07 E8 BD 60 A4 8D 04 07 20 91 A5 BD 62 A4 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 FA A2 00 AD 8E A4 8D 03 07 E8 BD 8E A4 8D 04 07 20 91 A5 A5 33 20 42 A5 AD 03 7A 8D 05 07 EE 05 07 AD 04 7A 8D 06 07 EE 06 07 AD 05 7A 8D 07 07 EE 07 07 A2 03 20 AB A5 60 21 33 A1 8F 8B 9A 99 98 FF A2 00 AD C8 A4 8D 03 07 E8 BD C8 A4 8D 04 07 20 91 A5 BD CA A4 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 21 3A 00 01 02 03 04 98 97 90 9D 96 A2 00 AD F6 A4 8D 03 07 E8 BD F6 A4 8D 04 07 20 91 A5 A2 00 A5 AA 29 10 F0 07 A9 9D 8D 05 07 D0 05 A9 8D 8D 05 07 A5 AB 29 0F DD F8 A4 D0 06 BD FD A4 8D 06 07 E8 E0 05 90 EC A2 02 20 AB A5 60 8D 00 7A A9 00 8D 03 7A 8D 04 7A 8D 05 7A AD 00 7A 8D 01 7A AD 01 7A C9 64 90 13 AD 01 7A 38 E9 64 8D 01 7A EE 03 7A AD 01 7A C9 64 B0 ED AD 01 7A C9 0A 90 13 AD 01 7A 38 E9 0A 8D 01 7A EE 04 7A AD 01 7A C9 0A B0 ED AD 01 7A 8D 05 7A 60 A2 00 A5 FF 29 01 D0 09 AD 03 07 29 FB 8D 03 07 60 AD 03 07 09 04 8D 03 07 60 85 21 8E 01 07 A9 00 9D 05 07 A9 01 8D 00 07 8D 02 07 60 FF FF7 w$ B S( a, [8 e' T7 J0 s
# ?5 a: U6 ]- v: @! d7 a2 g- 6 S* h" T2 s) Y" W5 t; J
- 6502 simulator:; e* h+ |" l# Q8 A9 F* [- s% X; s
- PPU写入程序:
& |: r# t0 p; F: d; L# X - .ORG $A000
) o% J4 f _# ^ Y, @ - CSP = $80- N) b/ B' t% d
- C0 = $81
8 i f6 y2 Z& Q1 H& ], u0 j - C1 = $82- l' A3 b2 o5 D( n. Q" c/ w& @
- C2 = $83
' k; V/ @5 i% b, _; D- ~* h* @; m - C3 = $84
: h1 f9 b# L6 S+ R - C4 = $85; t$ F3 L9 E- x6 ]2 a" t& a3 P! w4 L
- C5 = $86, ~8 T- S$ o5 m9 C9 Y" G
- C6 = $87
" P, y6 m5 w* Y - C7 = $88
6 E$ ^- I7 K' N% ~& `8 U - C8 = $89
1 ~* M) m+ \" R( R4 h# V - C9 = $8A- p5 v( O/ ?1 a7 f2 \! ~, s
- CA = $8B
1 ~; v( {8 W, z4 a5 P0 C - CB = $8C
" I6 e# W3 o' y- b G - CC = $8D
) X8 ?# ~2 t. \& G7 ?4 R - CD = $8E
3 N& Z9 C$ T" Q6 G. {' u. p - CE = $8F
0 l! Z; E# R. F$ E9 Y - CF = $90
0 ?1 |4 O" B' S3 n - CG = $91
6 }! F# {' ?5 S: a0 |" B - CH = $928 `5 @1 \* \ B! w4 Z5 @* \- j3 h
- CI = $93 g* O$ c% Q' L6 `1 B$ }
- CJ = $94
0 q5 ^) c& y) R X! J - CK = $95
8 C& V3 _/ k- X* f: l" i" d, h" ^ - CL = $968 ?2 q8 G3 p8 k% A& ^) V! @
- CM = $970 {: b( j( y( L, W2 \+ V* ]
- CN = $98; s9 E! E, ^" J$ N% K
- CO = $99
7 h" A/ L- d) I8 J - CP = $9A
4 `. Z& P/ @ h2 ]# b7 B! O* F - CQ = $9B* ]0 g4 O0 `9 X* u P, ^
- CR = $9C
9 z% v, d1 x8 z( [ - CS = $9D
# _ X* K& l' {- M% b - CT = $9E4 { j; D+ o6 l$ P5 |9 Q5 H6 q; K
- CU = $9F; r* Z- ]; ^8 W3 N" c9 B
- CV = $A09 K: i; N) { @" b
- CW = $A1
: K( [) Q2 ?/ S$ ^# m6 b+ C - CX = $A2# a- n: E6 b6 w+ B3 {
- CY = $A3
. c; d4 b. Y) o* }! X6 W - CZ = $A4
. a+ T3 ?% K1 ~0 N$ d6 ^ - CEND = $FF6 ^' ]' }/ d; D
- & p8 Y4 m% d/ g' B; V2 R6 @
9 J" V3 I# V# d0 x9 b4 ~7 j- CMP_RE:
. b M: t! o! h/ ?# b8 p4 v - LDA $FF
- ?0 T+ i6 z6 Y0 b2 o' X5 q - AND #$7F3 V8 F4 [$ ?4 Q! K
- STA $2000# I* V9 B/ ]5 e7 J, \& R
- LDA $20024 v6 ]7 [' d D, q7 N1 ^2 s e3 E. C
- LDA $25
* a0 i3 N; a. `8 r, r - CMP #$01" ?! n, j7 n9 C$ I0 B
- BNE PROREG$ u- I1 T0 E0 x( x) R
- LDA $F5,X% `3 e: v2 s5 Y+ b% I2 L
- AND #$CF) G7 ?& J2 p6 P6 y. B# P: H
- BEQ PROREG; A- s$ F+ {. t: }! O8 R; u( m
- JSR PPU_CMP
$ O0 x. Y/ c/ ] - C_RE:8 c6 E6 W5 U" C1 V2 p1 R
- RTS
( ]+ B, h& \. N3 n( E- O& f/ D - PROREG:8 n6 g U8 j* `, u
- PHA
! ]( |' a8 ~* n' W9 q! y" | - TXA9 I3 x! \& ]4 l* a/ |1 ]/ W
- PHA
! f. a% M4 ?! W+ d" |( `6 q - TYA$ i9 k& Z/ A) t: h6 ^7 t" F
- PHA
: i! J' z# ~5 L1 a - LDA $25( t7 q. I7 M( m
- CMP #$01
+ w1 T2 r5 U7 E- b# P - BNE RE/ N9 R0 {$ H" t) T
- LDA $010A
( u/ ^* F/ u& f" G7 z) T* W - CMP #$00
- G/ p: J7 D9 n' \. g - BEQ P1
( T3 l& k" O+ v- P: D( H -
# y5 U$ d4 w( G2 M% [3 `; ?# O - RE:, d% L1 d* A+ j& U$ n8 ?( y: E1 ?/ t) n
- JMP PPUWRITE
2 _. `- I/ N" T6 ?; Q - ) l& w6 k* M5 |
- P1: ; 条件判断+ c' T, B+ B! U6 ]
- LDA $7FFF
- G9 V& Q9 V0 F1 A1 t3 z( v, U - CMP #$FF& C2 H" B/ X) f" q
- BNE P1RP
! w$ ]" C) Z) Z; l. e# L( l- r - LDA $7FA0: ?; |; }/ M3 {8 L1 a9 l) \+ i
- CMP #$003 A/ w) _9 `( V- l0 a
- BNE P1CMP- g4 T; m# m3 l3 f) d/ m1 a; Z3 s
- LDA #$FF
6 _8 Z$ K% W, f - STA $7FA06 P; @5 K+ W& n; p
- JSR CLEANA" o. N; y D9 U7 R
- JMP PPUWRITE
( {' ]: n% w0 D; J5 v/ L/ ? - P1CMP:6 T4 g3 | F% ~6 h# ^) c
- LDA $7FFF5 m& q+ H3 g3 ]/ r, e8 L9 e
- CMP #$00
3 K( v+ D; t0 G2 u3 L' }: K - BNE RE2 h( Q; e5 H* M" g- R- X
- P1RP:
, R# O' Q. u; G- j2 V/ b( I# z - LDA $2002
B0 a; b" e4 Z - LDA #$00
* |7 l* A* a" V! B, o% h5 T - STA $2001
* f+ Y# [3 D$ ~0 D7 Y: P - LDX #$00# I: g2 I( Z3 T' U8 ?
- LDA #$FF
9 g% E" T9 v7 ~4 l" } - STA $7FFF4 Z4 T/ J- k% B4 {3 g6 ]6 C1 U5 V; ?
- STA $7FA0" Z7 U$ V0 u' W8 i8 n- t! V$ c
- JSR COPYPPU1 k3 i- Q. C: Q8 p& u8 W1 E
- PIRP2:/ L3 d% s& b- R& i, P
- JSR CLEANA
8 u- \4 o9 f6 q5 k( ^) e - JMP PPUWRITE" w! M0 v. q) Q: G5 }; R
- * D" v S+ U3 @. H# ]
- COPYPPU:
3 c, U" O' d0 M$ X/ T6 s" H+ ] - LDA $FE% [" p. C( q5 Q) K' }
- STA $7F50" y9 r4 ^9 V) _$ ~5 A7 Y
- LDA #$080 x7 m! s; Z5 Y6 f0 [) M
- STA $FE m8 u8 C4 ]9 J' Q$ l, M3 j; ~' u
- L0:
) y0 [1 {! H" b2 ?1 f - LDX #$005 {! ?6 I' ?& ~3 P
- COPY_07C0_07DF:
. t# n7 R$ w* r- K$ H - LDA $07C0,X9 H( ~5 U- ~6 C$ G0 X
- STA $7F00,X( ]" V/ Y& L' O, O) h/ k% i" e
- INX
: `% N- p0 V; D1 j( P y9 @ - CPX #$40
4 n% U0 c$ O K+ M( e - BCC COPY_07C0_07DF
# R6 ?9 ^2 S/ h - LDX #$00
7 f# v! [8 C0 h9 z" c2 m - PPU_07F4_07F7:, l" }, O8 `* S I! j9 f. [
- LDA #$00- W4 x7 d8 @% s3 ?3 ^1 Y& u; g
- STA $07F4,X
) q: l, M1 y8 X - INX! S. g3 J: L' D& t: I, I% H
- CPX #$04
; ^, f' @# Y' V& y$ z% ~" m3 p4 i, s - BCC PPU_07F4_07F7( k0 W, U4 p1 S
- LDX #$00/ Q/ G7 ]% c0 ?3 A
- COLOR:
: Y' R0 G7 i" T8 I) y& O+ L3 o - LDA COLOR_DATA,X7 w) p# N, x$ R. d0 _
- STA $07C0,X
! C# o! C' V5 k; I, S9 Q. @: J5 N - INX) r$ B) ~$ Q, O s: J
- CPX #$10
3 l+ z9 p* K; V" y3 T - BCC COLOR
: m( h6 K5 F" ]* \7 N( L$ }8 @) ^ - 0 F2 ^, G1 {" l/ c; N) l
- PPU_COLOR:
1 u, s! v; s) { - LDA #$3F8 l2 d/ B" ?5 {! E1 Q
- STA $2006& p Z% d2 r. t2 |9 u) T
- LDA #$00- c- F. X, X5 ]3 G
- STA $2006
( W. C; d, j& l! w0 S - LDX #$00
* o4 i* r( d1 v2 r2 W - PPU_COLOR_W:4 {" W$ F; n- s( s) A
- LDA COLOR_DATA,X
m9 M) z- G2 g8 p' G - STA $2007" ]- F, T& T! K/ D
- INX
' H7 Y4 P& z3 S7 O) D- S+ m8 x - CPX #$10
! B' _. ^" J8 z5 G) E2 D- | - BCC PPU_COLOR_W
, `6 @0 U3 ~: S, s -
6 ^& `! S9 z; ~" E( [- T: R -
/ J& w9 _, R* }( P0 H* `& {9 g - LDX #$00
' }. O0 \9 o5 F' [/ e( S - LDY #$004 V1 Y1 i! O" q) o
- LDA $BD9 f3 q2 k6 e2 Y# H
- PHA6 B6 R2 [' |/ j, ?& ^
- LDA $BC
, k" J6 |# C$ e2 s% k' } - PHA
7 H" q1 I* N9 _6 q& h: i - LDA $BB
$ s5 e* o9 Y! d - PHA
0 K) v+ e* @9 ^5 D0 m/ N. Y - LDA $BA
7 F6 c% _5 o s3 O0 K4 k% X, Y - PHA2 s" S* J$ z# K9 w& Y8 P1 ]
- LDA $B9
, e& O4 k# F1 s6 r7 N - PHA
$ p1 _, h3 @; x% ?4 J9 h5 x* D - LDA $B81 T; Y: A% y1 p }3 J8 Z2 c
- PHA; m5 N f, l- |" A
- LDA #$008 j3 g) Z) n5 S- X0 A0 @
- STA $B8
; F& D$ g( Q/ Q% E9 w& { - STA $B9
- @7 @( o# O" D4 ?" y2 F - STA $BA1 u1 k0 N k) J& O( A* T: Z% s
- STA $BB" R8 u3 G2 t, @* k( x# G6 o% v) A
- STA $BC
6 @" t) T1 o; N4 c5 B8 j - STA $BD' V: S5 M3 a" @, L& z$ o5 _
- LDA #$00- I& o: C5 w" d X% D% ^3 _( Q
- STA $BA
! N+ E& b! e( T% U( Z8 k+ Q - LDA #$20
3 T5 _* j z+ H3 J - STA $BB
' I9 T, f5 t0 H, u/ U" _+ s - LDA #$00: q3 F3 ~: m5 [( i+ d8 x3 U
- STA $BC8 \9 J x4 ~/ h! \& @
- LDA #$60' Z% C+ q! B1 r) ^4 t
- STA $BD; l6 l. ^2 b: H* J" i# N
- ; Z o. n4 {9 Z- G4 i( {3 G M
- L1: ; PPU复制& b! h. x2 r* s
- LDA $BB) ^) u9 z K% @8 w1 P" k: p' T
- CMP #$28' i0 c! S/ ]& G6 {
- BNE L2
# N, P: U; w- @3 j) F$ i& F- J - LDA $BA
, f8 w+ \0 i9 h$ o3 X: g8 \+ G - CMP #$00
) q6 f0 j2 n; O5 G - BEQ PROADPLA
. E. m' O! f& h u/ U( r h - , m: H1 i' e5 o; H) d
- L2:
7 X) f3 y) r, ^& y+ G) H) k" g - LDA $BB2 ~: K; C) o2 F u' ~8 Y
- STA $2006
. G6 O+ B: i' I - LDA $BA
$ D! {/ {9 U/ x0 r( I% n - STA $2006
* U/ w* A7 C& C -
: e- H3 Q& i' n. L- R4 J, A% a - L3:' l9 c7 T& N4 q! i5 N3 G
- LDA $2007
g& k. ?2 n1 J/ h# Y. @7 |1 L - LDA $2007' f" {# I5 c1 t/ A4 m0 T. o
- STA ($BC),Y, Z# @4 ^* R: ?
- 7 `, I7 h, w9 F0 `5 _( Y: N
- L4:
5 ?* ?3 s5 X2 R Y- z - LDA #$00
c; N7 J% u4 @" T" o - STA $2000+ c% ]8 p2 Q4 z; ^
- INX
' K0 s/ J* z- E) h1 ^2 u5 B* \ - INC $BA' y$ `( z9 N8 c
- INC $BC$ w v, z, F0 [! w# K8 s0 K
- CPX #$002 a" y' | r. ^% G! Q0 `6 }& e. M! M
- BNE L1
0 f9 g; s1 Q+ Z7 G' W; ^. N+ D' H9 C - INC $BB6 X, W0 M( J9 C: D
- INC $BD" V; B4 S% C/ O w. g! E1 g
- JMP L1# V8 |' D: W/ L) j9 b5 K$ P5 M
- ; |: Q, G M( _4 L. i8 [* r# G T
- PROADPLA: ;出栈
+ e ]' C0 G/ e4 t - PLA7 w( Y9 f/ u* f( W
- STA $B8) P! V5 E- W- s" H. |
- PLA
' Q0 D# `. U7 u2 l& M- E - STA $B9* H6 J/ b$ e- g+ p! ]0 \
- PLA- s9 R" X/ |7 f* H" K
- STA $BA
* G, G7 X7 F, m5 [$ }8 j - PLA
9 [5 I" n2 _; ~9 N4 c - STA $BB
1 ?2 j' G; k* a6 l4 X; @3 M+ g - PLA0 b3 M! Y( G# u9 Z) n
- STA $BC- [, p6 V7 t' d& F9 |, L. ?! @
- PLA$ ]' \2 l% |' F+ W: w, F1 i" \
- STA $BD
! l" C6 Z" X* N5 z8 h2 O6 e - CPRE:
8 S# Z/ w2 w* `4 s- } - RTS/ r: l$ W6 j+ v) C4 s5 u
- ! [* |! B' |9 {" t) N! B4 |
- CLEANA: ; PPU清空: u9 ]( q5 L' v! O
- LDA $BD
" O. t( X: ]- O - PHA
5 p8 s. P4 p( F0 K r) ~ - LDA $BC/ O% x; j U1 M9 o' ? n
- PHA
1 w4 r4 }' J5 A& b3 i9 a - LDA $BB4 V; X4 O$ Z7 t* K: i* c
- PHA* R, Q" O8 d$ X! I @$ W
- LDA $BA! ]( W: b1 a; W1 u
- PHA
6 t' P) C) p/ @. `- V) L - LDA $B9
, V' H* H" I& |/ u5 r+ Y4 o- w - PHA
8 `+ l; t! E2 J" |4 e4 A - LDA $B8
7 b' _5 w+ q# d; G$ S8 y% U - PHA/ U' m; n: F+ |
- LDA #$00
# A. x4 U% d, C' @6 p) W: l - STA $B84 g: u. l: Q, Z& d7 P6 B9 {2 }6 C
- STA $B9+ g+ v2 y* Y7 z/ F8 I
- STA $BA/ ]. _# I' a" @7 G
- STA $BB
0 p" B$ p1 X1 L; W8 a - STA $BC
) ^7 X. x: v/ o. B - STA $BD
& m7 a/ L$ Z- D# g* f" s. M K - STA $20019 {# w# T, `3 F' s
- LDX #$00
! |# U, T; W9 ] - LDY #$00( o# d5 t. f7 R" p4 X* }
- LDA #$008 t6 ]) a- F0 }6 s9 V8 C, L
- STA $BA/ v, ^1 E8 a3 Y! O. d3 ^
- LDA #$20: m9 h' h/ y% u$ F: E- b
- STA $BB; V* P* U4 V" r* K
-
2 n3 r: Y6 }% T7 t- f6 H! ?+ ]0 ? - CL1:
& f+ L- h2 u$ R% Q - LDA $BB
. t4 |+ Q9 I2 a3 S* t - CMP #$28
Z0 Y( Q7 F( b* W - BNE CL2/ E, H' y' d$ e8 W; `8 b
- LDA $BA
7 _& B) X7 [9 T/ h - CMP #$00
7 `2 J; f4 Q d$ z; d - BEQ FREEWRIYE! v; n+ |. J( V$ z
-
2 D: r* C) u4 R4 i! T/ f' {' g - CL2:
* Q. ~) B2 V$ K - LDA $BB
. S+ d+ ?- z; j) X" z/ i8 h - STA $2006% y6 H6 O- F+ m7 \& ?
- LDA $BA
: H7 Q/ [4 y) R% H5 v - STA $2006) c# e1 \" R! Z: ?
- 2 Y! j& E( U& w
- CL3:, y( A* Y/ p( q
- LDA #$00: N) b2 u, S3 ?; r. Q/ u- H
- STA $2007 v; {' u: ~2 e6 p
- & n' B' `; t" j0 g) c: a
- CL4:
, Q" w" A) P' J, ^ - LDA #$003 J- d! u* c6 e" y+ C
- STA $2000$ R8 b" @+ ^* y
- INX' P" Y- ^3 ^, [% m
- INC $BA, @- e6 B1 f) D. V3 O V5 O2 ?3 |
- CPX #$00+ U5 j8 S9 B1 Q
- BNE CL1
# f3 l: t+ B$ g6 c" C - INC $BB
; M3 k( j/ [. \7 j - JMP CL1 9 p. H7 n, ~" e
-
: y6 b9 C. a3 f - ' N: P/ x# c5 b# N
- FREEWRIYE:
7 G0 d3 ^' k, L2 l' V) d/ I4 Q: R
* y# }" p* P1 U8 B2 Q0 D- NOP
( }4 c% \; g6 V4 b( F4 i7 A
/ p j- C. W5 c w* T' k
/ y9 e+ w2 I9 ~- ; f# G' Q1 S3 j0 d: t7 D ~+ a8 K
- 5 o/ g/ I9 L4 W' X" t6 m
/ w: Q( P7 h, d8 T- CLEANF: ; 恢复现场
$ ]" Y1 F4 i' O - 3 w4 L& U! @$ \
- PLA
' P) h. |+ H1 d7 r/ H6 v - STA $B8+ n) f1 k/ B F$ F O
- PLA
' c) B' F1 w7 e S g M# N- C& G - STA $B9, s9 a4 g; Z8 j& _# y" T0 k
- PLA
) t/ m! V4 l4 i' x - STA $BA
8 Q0 a3 H8 {% y. W' I - PLA4 U3 d2 Z! j4 b& W. E9 _
- STA $BB
2 ]3 @5 P; l1 h# h9 ?0 }% D- d6 M - PLA, i/ P5 L0 S- N) n* V# L# z
- STA $BC
2 h4 C. j! h# @* G: P l: ] - PLA
+ m6 J$ _. e2 @6 _+ u - STA $BD
$ e3 R7 i' p. j4 a1 [- q% [. t - CLRF: @4 [1 m" a/ Z& G8 Z& ~5 e& L3 Y
- JSR FREE_PPU
0 p$ p5 n" A) i8 i$ Q" C) x/ G- T' C - RTS
9 a8 D$ Y3 s D- C% v - ; D( T N! X3 H4 [: p5 D
& n# }# Y7 {* `* E. _+ r- PPUWRITE: ;PPU写回
0 A& z: M3 ^3 ?, _$ G) D1 p3 b, m - PLA& Q# h: y4 U% T
- TAY
4 p Y$ ] S. H( O h! G - PLA8 l/ x) h) w4 F; D8 i& e
- TAX
- c! U7 ^! y1 U! B- l - PLA# P5 ?+ Z! W) z& R- L( r+ u( W
- LDA $25
4 w+ \8 d+ D K' E( T - CMP #$00
/ S" `4 Q$ a/ N4 K+ | - BEQ WP1
8 k, p# w8 _- G, Q8 { - LDA $25
# L8 T/ [- _: {. O - CMP #$01
0 _8 G% C2 Q" X8 W% T t( t) T - BNE WRE+ M. _, \) p3 o8 c: c) d7 W% [3 Q
- LDA $F5,X
2 r& C+ f% k: R, l - AND #$EF
- X$ r! O" O! l/ B - BEQ WRE
4 \: x# H, L6 e3 Q. K. V - LDA #$004 {1 D2 c8 H0 D' ^" g3 J, q
- STA $7FA0
* s v+ T/ Y4 ?+ Y/ W+ x0 H; Y -
' x' X* M# w2 M( R- e N - WRE:
4 z# ^) A6 n9 _/ v1 | - RTS' j$ L0 o( V( W0 |9 w* }6 h o
- 3 s! v( t2 @: E7 B
- WP1:' ]+ }) {1 t' l; b. \$ _
- LDA $7FFF
, Z" q# T3 M3 e6 N7 H7 h; `3 P - CMP #$FF
+ z5 w0 u1 @( f" e2 ?: F. ^ - BNE WRE
8 J% P O" N1 ?# s - LDA #$00% g/ N* K7 q+ q3 d
- STA $2001" |1 G; f! a! X1 _* B! D& D
- LDA $BD* A( v7 c/ H m. Q3 N
- PHA W8 t' l; V5 n% E2 f( X
- LDA $BC
) X6 t' J& v4 r' ?1 A - PHA: f) g) D* C" p! ^$ R) a |+ }
- LDA $BB
' F% [4 V) a- V# X, m b - PHA5 \4 V, H! o0 u1 ?
- LDA $BA- _! j) x9 H+ l3 Z8 _
- PHA
: u( _6 D- o) F0 a - LDA $B9
( r. ]6 Q' x% ~7 z0 D* [1 Y - PHA
7 `% M& }; K% W6 E# b - LDA $B8
- ^9 F* s- T: J- y. D c - PHA
: e. z' i$ }. A! L# z - LDA #$00+ h- d% Y% ^7 l/ |& L
- STA $B8
: w' A/ ~: c( F5 \& U - STA $B9
' N- Q. K: }( g" ~! \: ~' f& } - STA $BA# [+ }$ t% G. F l; z- x
- STA $BB
6 g$ }; F: f9 v - STA $BC; \3 ~% e1 E+ b6 x: H4 s
- STA $BD# Z \5 H p/ p" R: T% }' j2 a
- LDA #$00
& C$ W6 O# Z+ ?& K0 e. ~ - STA $7FFF3 W& Q; q, u+ D
-
8 I/ h+ D+ j# a - WL0:5 L6 W! W) h# m# C
- LDX #$00* n7 n4 b4 E3 K) ~. z% {, t
- LDY #$00
, D: I9 G8 F! [( ~4 r/ R, Q! T - LDA #$00
8 A: u( O! M K _2 R2 E - STA $BA" L9 b, Y4 P( C7 a6 T0 W1 @3 I. ^0 G0 l
- LDA #$201 E, U# H5 t* i$ u
- STA $BB
; n6 s2 p' Y, n. p" V2 M' Y7 G - LDA #$002 v8 F- P! f1 `( P2 k
- STA $BC
" g, N8 W. f& o6 H - LDA #$604 S; `2 Z5 y( l1 S
- STA $BD) [) M6 U! t6 w% p$ `- t, G
- 2 d: R+ R/ j1 F4 y1 `# v8 l
- WL1:6 L& o9 ^5 a' Z Y* s
- LDA $BD6 ?$ L: |: ]5 ^. u( Q% _. e
- CMP #$68* G9 K7 Z6 K3 m8 v% ^% m+ ]
- BNE WL2 b3 }* Y: E8 T! _7 W
- LDA $BC
5 }6 O! {9 S# i( B! t2 p& r - CMP #$00
" Q ?5 x9 G g, ?; j - BEQ WLR) }- O) \, S: d9 a% `3 f( ^+ C! t
-
: Z/ ^6 }' z$ \8 q k2 K& M - WL2:
9 b( A. Y ^ x- [, n - LDA $BD( f' j; A, ^" g4 t
- STA $2006# j# q* d9 ^- N5 y2 D# {0 M# V* q" s
- LDA $BC3 ^* _9 z! @/ a
- STA $2006) t$ Q0 f# }' y) }
- . w0 F! O, Q7 B# _0 M: K
- WL3:
4 K$ \) t1 }3 w0 h* i& ]' N2 J - LDA ($BC),Y: [6 E, D: |' y+ W% X* N
- STA $2007
1 ^( u) r, Q" `+ i' Y - / R( i4 y5 I# m, L0 u; C
- WL4:
6 W& \) F: J. E+ O6 m - LDA #$00
' `3 A. O0 i3 ]0 J# ^$ W# a - STA $2000
( S$ \ k6 f8 ^! H3 z - INX: c- _9 V. R% J4 B
- INC $BA* ?- I3 E8 D; C f/ T" g k. S
- INC $BC' d8 A. A F9 T3 m2 M
- CPX #$004 P" H; B9 x6 j
- BNE WL1
! z5 Q3 h# O. f: W; v - INC $BB. \; W) r9 Z8 y5 C+ K8 ?
- INC $BD/ p# B6 i$ a) `& F5 I( q
- JMP WL1, Q& W) a( o! ]# o
- 9 t1 F' o! K" Y: t) c$ D$ p3 D" v
- WLR:1 }; B5 w7 S8 a+ c! f
- LDX #$001 ~ e3 Z, e" @
- COPY_7F00_7F3F:. r1 W2 x& i. j" v' ?
- LDA $7F00,X" `4 b- {- ]+ K+ P) U: ~9 }
- STA $07C0,X6 X) w0 A& o! R5 c
- INX
[( Y( P" G2 W4 I; z+ w - CPX #$40; K! y0 e I& o" L4 \( _
- BCC COPY_7F00_7F3F5 Y4 q' H8 t3 E1 v% r* `
: Z7 m: T& u) y7 s. c j, a1 Q- LDX #$00& V0 w4 m) `+ V. X* S
- LDA #$3F
5 J* B6 ^1 W2 H- S! Y/ g - STA $2006
( B. J" k5 C5 r# o5 _" H - LDA #$00
4 j& x8 f) S: }) m; l - STA $20068 x d( G. a" i6 d0 B' g
- COPY_7F00_7F10:9 q d# r( x* z+ u
- LDA $7C0,X+ D0 t8 ?; \/ u
- STA $2007( W* [$ M) l) I1 ~6 J
- INX: m, J3 Y4 j' Y \ [
- CPX #$10, Q# L( P: d. R, v& ~; Q1 a$ c
- BCC COPY_7F00_7F10
( U, _& h- ~! ]- m -
3 p; T# f9 m9 N- G; B) h - LDA $20026 B& c0 a% k5 E
- LDA $FD
! k$ i( d `) y S - STA $2005. ^# A% D: N7 X& {3 e! R$ I
- LDA $FC2 [4 j+ F: e) V+ F
- STA $20056 q. Q, |( Z* z* a# O% O1 n) u" y
- ) d- s# C2 {* w9 c' I3 W" [, H" x
- LDA $7F50
) X" g' w$ ^! O3 A. s: x7 p, W - STA $FE3 i( ?$ m) q5 \ J
- LDA #$00 O+ F! b! u5 ^# d3 \" S8 {( Y; `3 i
- STA $2000
/ S9 y, D) [" M6 O# h - PLA+ _: O+ C& m" _. G1 E
- STA $B83 J# g+ P6 R9 P t# v# w! q0 ~
- PLA
. o; O& B( A8 m, d4 n8 G% a - STA $B9% { D3 ]- m r4 ]: v
- PLA
) a+ w" E7 H; ]! C8 j - STA $BA% U, e) j; u3 v3 }6 _( q
- PLA
! S/ u" @; e8 P+ k! x W - STA $BB/ |" D& z* J: ]/ S5 p8 l
- PLA% L0 G4 T, B2 K q. j
- STA $BC
2 ^( g- s8 l( L! N - PLA; [8 c% g0 n/ A. |) H; F4 [
- STA $BD, G& o1 o& P {6 A
-
, ?% C0 y' n) H7 V4 ` - RTS
2 p2 X+ }; o* }$ U
- Z! m) q: r+ t; n- PPU_CMP:
0 C6 ? c( n3 P/ `( \2 N2 v - , a S( i% _9 w( Y5 m
- " G1 B' y- @2 p
- PPURE:
. J# k9 l" {5 R D2 F+ h w - RTS
6 X7 h3 T5 ~% S2 `. G. v
, G/ P1 M" v5 `' G* _( f
& w5 g' Z$ \: ~8 H9 n" X6 A8 }3 ]- FREE_PPU:* z; D7 e3 g5 q6 o" u% p3 t
) y) e \# _: }* D- JSR TEXT01_PPU4 T+ ]# U& I+ f
- JSR $CBC0% j9 d0 g% `) W
- JSR P1_PPU: c6 {2 W* i2 t. @* S' l
- JSR P2_PPU
3 H9 V* w: \( `$ {8 T, M t# p9 d - RTS1 z: @" v1 b! ?. J- d
- * y6 W- @: m; y% k, f
- TEXT01_ADDR:. J7 u' Q% D' z! G) j0 ~
- .BYTE $20,$42% a! A8 A1 l( f
- TEXT01_DATA:8 t, G9 Z+ g1 {3 I
- .BYTE CH,CA,CC,CK,CSP,CB,CY,CSP,CF,CL,CA,CM,CE,CC,CY,CC,CL,CO,CN,CE,CSP,CI,CN,CSP,C2,C0,C1,C7,CEND: E _+ o0 x* y: y
- TEXT01_PPU2 ~# b T1 c: O% H& B
- LDX #$00# w% l/ z" {4 H: n6 R
- LDA TEXT01_ADDR2 `# ]! Z) c+ L2 [
- STA $0703
% C; C# b* v! ]7 w4 }: T/ U - INX
/ K. r1 l* P4 C$ g4 F - LDA TEXT01_ADDR,X' ]* A* [+ y7 D0 g `
- STA $0704( s F( Z4 \8 v
- JSR PPU_PROCESS
# K4 O. O. D. }: J - TEXT01_W:. m1 v- e% h f& Y" }
- LDA TEXT01_DATA,X F( j: }' X) g7 C8 j( y# Q0 f- |
- CMP #CEND
* B3 f! G( G& _ - BEQ TEXT01_START
, L) ]" @8 v! g$ g ` - STA $0705,X- L3 M2 o/ m% n% L1 ], a
- INX/ @! ~2 H3 W9 p
- LDA #$00
1 O0 \3 K! |% j* }" g - BEQ TEXT01_W
- L) A- @' j/ f- g. o& ^, |2 ^ - TEXT01_START: q: [5 U4 i j3 w5 d& ?
- JSR PPU_START7 |* R" I# }1 c! V/ e' m3 c! c
- RTS
! k' D! d$ e, Q& _8 W- { -
$ `& \) X% z1 ]3 z2 b1 O
( {% y$ _/ @# s/ S' s$ _6 d- COLOR_DATA:
# Q. z$ {" i' C- | - .BYTE $0F,$28,$28,$28,$0F,$28,$28,$28,$0F,$28,$28,$28,$0F,$28,$28,$281 k* t8 \; B, v7 W. ~, t
* D# _$ H2 x* x5 L8 @7 G8 |' L$ B; I- P1_PPU:
5 {' P% v4 k ~ - JSR PLAYER_01_PPU8 g; U( A: |. k$ [$ @% f& M0 `
- JSR $CBC07 k' i5 S, I) ^$ [; |% e
- JSR RELIFE_P1_PPU
8 O% }& J5 U2 c$ `% u, K4 U) ^) f - JSR $CBC0
9 r. P. ~( c3 k - JSR RELIFE_NUMBER_P1_PPU
4 R( U3 j" x( P# W3 I* g - JSR $CBC0
. z0 D4 k- \2 {! S1 R - JSR WEAPON_P1_PPU( h+ D5 C* |4 `7 h% j/ r: d
- JSR $CBC0
' k% ?2 V* X' a9 O* H - JSR BULLETPPU_P1_PPU# B4 V3 i4 y# {3 \ P
- JSR $CBC03 y I+ q7 Z# }# f4 w
- RTS
" P& R0 i# J2 N6 s -
2 d2 b. n! x: r/ T1 X: M; { - P2_PPU:
4 E4 V9 ]1 o0 I6 a, W- h* r3 c - JSR PLAYER_02_PPU6 Q5 B( s9 {1 k! L# g
- JSR $CBC0* v" F- W8 P3 a2 X
- JSR RELIFE_P2_PPU7 Z& r' J! n6 f7 _1 u( W" q; Y
- JSR $CBC0
- i g# d; P( F& n - JSR RELIFE_NUMBER_P2_PPU
- B( {8 J' Y3 Q* D% r) Z - JSR $CBC09 A9 g+ j8 i0 e& P6 F' v
- JSR WEAPON_P2_PPU
# X, Y/ K! r) y4 F - JSR $CBC0
$ c ^$ O/ X9 f) u - JSR BULLETPPU_P2_PPU
2 p& q ^$ y1 E/ _: x( @3 K - JSR $CBC0% f$ h. `, V* A, {
- RTS
6 d) c' n, r3 h8 B, k0 d i6 p - 6 \/ w! d( [% D- V) h1 _
( g. p+ _* ^ [9 d v
l; p5 W' V* x. q- PLAYER_01_ADDR:; L; T* \( H7 c0 g) ?- L
- .BYTE $20,$A38 p$ r {# V2 q3 G1 Y* n( W7 H
- PLAYER_01_DATA:( x/ O' f6 ^1 k) H/ E
- .BYTE CP,CL,CA,CY,CE,CR,CSP,C0,C1,CEND
2 W! A2 F+ J4 q% q( S% A, g - PLAYER_01_PPU:; H% o& ^& u i
- LDX #$002 |( I) E' f$ K5 j6 @3 \/ t# E$ ?% K
- LDA PLAYER_01_ADDR5 C! h5 F$ I% f
- STA $0703
5 g) z/ _' Y. Q# k* F- C - INX, u& B7 e4 g0 J/ c/ M% [' v" r) ^
- LDA PLAYER_01_ADDR,X
, L+ y _- C0 m/ [/ I A- D6 A& y$ b/ S - STA $0704
% x, j+ T$ X0 N" |- P+ T% ? - JSR PPU_PROCESS
3 a/ v" w4 |( D& I& Y5 i" t - PLAYER_01_W:
# o% n$ I& k3 w( ?# Q - LDA PLAYER_01_DATA,X
# e3 T ?4 f! R% I7 [. r - CMP #CEND- p- E9 p- N6 R/ k6 s1 U( d7 J
- BEQ PLAYER_01_START' Z; h; J6 o m; V
- STA $0705,X; ^0 z* D- h( D; x: E
- INX$ r) c8 i- C# A) l, R: e
- LDA #$00* d+ u9 {1 h7 B k% `
- BEQ PLAYER_01_W
' [$ r) s) ~% M) \9 t. t) d9 C, b - PLAYER_01_START:! A8 ?) F) @4 ]; ^
- JSR PPU_START6 E" L+ ^( m% ?: x# [
- RTS1 \- t' k+ V$ }
- # _" t3 e) A6 D8 n! W ?& ?" a
- ( p; c- K0 n( k1 |' ^
- RELIFE_P1_ADDR:- @7 k; B% W0 _' J
- .BYTE $20,$E38 s j: u& P1 }5 a! V6 c
- RELIFE_P1_DATA:
+ j/ W3 u4 }* K2 X; u* Q; E4 I - .BYTE CR,CE,CL,CI,CF,CE,CEND) O' r/ D* x. ?) V9 f$ z7 {1 q
- RELIFE_P1_PPU:
1 \& u- C: G: r+ U - LDX #$00
: i& F# i$ H4 d3 c - LDA RELIFE_P1_ADDR' i9 n# v2 U6 [/ C' L# d* A
- STA $0703
+ j- s! J3 @8 O$ J - INX
( D$ H& {, V6 x% a: R& w1 A$ R/ h - LDA RELIFE_P1_ADDR,X
: Y! X6 q+ ^ t1 Q2 H6 v2 l# J - STA $0704( h9 m6 ?# R6 K! K
- JSR PPU_PROCESS
" e& g/ c$ W0 B. Y$ q. x5 D8 \ - RELIFE_P1_W:
$ H& N8 ]- H, X# I( Y$ ^5 R& x5 U - LDA RELIFE_P1_DATA,X3 B+ w# `. _2 Z7 x7 g8 S+ [
- CMP #CEND$ Q- K8 j" ~7 X9 O3 O' A# d
- BEQ RELIFE_P1_START |" \: o) \9 B4 w* j
- STA $0705,X
0 @. _+ W1 k- x8 d# E# L! T5 a; v- J - INX
3 e8 k# ~" n) K9 \ - LDA #$00
5 r+ h/ H ]" P9 W* G/ ` P - BEQ RELIFE_P1_W( `) J# Y2 ^7 t
- RELIFE_P1_START:
. C9 D6 s+ ?3 p1 P1 q - JSR PPU_START
# T2 L( i( y: k$ q, `. R$ N/ l( } - RTS$ g$ n1 d; L: p/ Z+ v/ [
- * {# U) K# M1 C& w# K7 D
5 t2 X; t5 n5 o( ~/ R- RELIFE_NUMBER_P1_ADDR:
& p" O8 X, h& W0 {0 ] l# i - .BYTE $20,$EA8 _! G7 y$ S6 B0 M
- RELIFE_NUMBER_P1_PPU:. d K( p# S h( Z
- LDX #$00
; e6 `2 }2 f* m( Y+ Q9 x; ?& n - LDA RELIFE_NUMBER_P1_ADDR
# a. y9 r2 G! P - STA $0703
1 a: q, L& P; H2 ?$ X - INX
+ n1 B, c a0 R( \5 c - LDA RELIFE_NUMBER_P1_ADDR,X
5 B: h$ C$ R6 x( f - STA $0704
9 \3 m( @- i! y8 A( v- E, M7 ]1 J - JSR PPU_PROCESS% k$ W- N/ y' |4 _
- LDA $32
" ]3 i: v \& w - JSR LIFETODEC
6 I; i5 e) `2 B# L1 { - RELIFE_NUMBER_P1_W:6 g5 r! x% x9 ?$ Q# A2 {
- LDA $7A03
* p$ A8 s) k$ W+ G: L( |; [8 ~ - STA $0705
- p6 E: ~7 J, B% b; u5 P9 h - INC $0705; T- i! _# p! p: s
- LDA $7A04: N0 `" v9 s9 h% d- t# K4 @
- STA $0706
9 s# ~! K( F, z) `$ h1 a - INC $0706# W2 b4 D$ M/ s, O
- LDA $7A05
: u6 p, }- s% t1 u( e: {3 k - STA $0707
, Z: v1 j+ s+ K8 p8 N& B - INC $0707, p- }- s8 o. l& i0 O9 O8 U
- LDX #$03
* U6 c9 ~4 O! D% [4 q- `7 f - RELIFE_NUMBER_P1_START:
% z: b6 J7 U1 v6 j' t: u" A# N; L - JSR PPU_START$ a) s: u' y- G6 q- N
- RTS6 E/ x. K% X/ c1 o
- ' a! z8 K" a7 F+ \( [+ A- b* M
- WEAPON_P1_ADDR:& E; B n( {0 s- ] ~
- .BYTE $21,$23% g, ^' t- n( n, L7 v: k
- WEAPON_P1_DATA:
& w. q! ]0 y+ k6 _$ O4 p - .BYTE CW,CE,CA,CP,CO,CN,CEND
# ~" Z( _1 J5 P# l% {$ G - WEAPON_P1_PPU:
7 r7 S( u1 Q2 ?9 _9 t - LDX #$00" p: J) \) z1 x* g5 v% G
- LDA WEAPON_P1_ADDR$ S7 A( t* X; a. x& o
- STA $0703
2 Y, C' h8 r x8 ?$ [4 m - INX
, w1 L5 s* R: v0 W4 X( G" s - LDA WEAPON_P1_ADDR,X" g @: @2 Q4 z- d9 g
- STA $0704
, y: z' W$ T% n8 b1 F# d - JSR PPU_PROCESS
$ K* y9 Z8 Y7 k+ h- Q3 N2 J - WEAPON_P1_W:
# m. E3 n" Q4 f* A9 t4 i0 Q - LDA WEAPON_P1_DATA,X
' [/ p1 ` u) o$ d' g6 q# w - CMP #CEND A7 c: s3 z4 k8 S) F7 M' C
- BEQ WEAPON_P1_START* k0 X4 a D( c
- STA $0705,X
' s! @9 U; `) h - INX2 Z5 }3 U7 n: Z9 H+ v$ ~
- LDA #$00
* } b0 x. q: B4 `( ` - BEQ WEAPON_P1_W
6 M" e" r+ x: w! k4 g2 q - WEAPON_P1_START:$ j/ Y: t @/ r
- JSR PPU_START
- R2 X8 @7 `/ {* K5 f - RTS
* O7 D! ~! G8 Z& R3 j& F7 O# K, n
0 Z4 D* d* g# \7 Z! |& d8 @" T9 w# C- BULLET_P1_ADDR:$ d# g- N! n. D4 ?8 L
- .BYTE $21,$2A! C- y, ]& N) \! O7 n
- BULLET_P1_DATA:( Y, Y+ k9 ^' z% J
- .BYTE $00,$01,$02,$03,$04
1 y$ u, O" v% e; j- f% L6 M - BULLET_P1_NAME:) ?% m4 d1 I! S, _' X9 l
- .BYTE CN,CM,CF,CS,CL
/ o" \+ b1 S7 x* z! j$ P; ~$ F' U% E
" ?" f4 `) D2 {7 X- BULLETPPU_P1_PPU:
" e3 s, f! y8 b1 T - LDX #$00
# i! p1 {1 p+ `7 q' d* q - LDA BULLET_P1_ADDR
8 h1 P. A z2 X! X$ I) P" I- N - STA $0703+ Z# U- }+ ]; P0 Z4 L
- INX+ N; r' M9 P0 _4 [5 a
- LDA BULLET_P1_ADDR,X
; Z/ l* i$ A( m6 T# _+ Y( E g/ S# } - STA $0704 o0 o( D" v7 M+ l4 B1 c
- JSR PPU_PROCESS
8 {! j c% V3 G" K - BULLET_P1_WRITE:
" x) Z' ~+ u+ K s! k - LDX #$00
7 u4 A5 s2 q1 N1 T, ^: }9 d - LDA $AA4 U* V1 o$ c% n& [* Q5 U7 T' E
- AND #$10
$ C1 I T3 h+ ~$ n2 i- F5 { - BEQ C_BULLET_P11 d# h+ ~/ Z/ [/ c% h
- LDA #CS6 x {- G) X3 U
- STA $0705
( ?3 U* b5 a* P; a. ? - BNE B_NAME_P17 F5 [* b* I. e) G. S1 X0 h( ^
- C_BULLET_P1:
% Q9 x6 v! F1 m+ |/ v. ~ - LDA #CC: E/ E* |" ]' I& D2 V
- STA $0705
0 H9 v9 t& X! [7 r - B_NAME_P1:* w: }) q& e0 H" X: g
- LDA $AA5 k) Q j# m/ L) m, A
- AND #$0F/ k+ Z0 b Y: k
- CMP BULLET_P1_DATA,X
0 S$ P6 k# ^# |3 C - BNE B_NAME_P1_RECMP
- O8 g8 R& \$ E' M6 E. O% b' U - LDA BULLET_P1_NAME,X4 m" S+ k5 z, M9 a( M0 J0 ?6 v
- STA $0706
: P3 H" p9 s3 c# h - B_NAME_P1_RECMP! E! y; M( B T# i
- INX
+ `8 I% \" a# K9 q% f* a - CPX #$05, }( {( H8 m# p; l
- BCC B_NAME_P1
6 M( [ t5 w% Q* `" J3 P - LDX #$02
4 b& a% k" ~4 |9 U4 } - JSR PPU_START7 g/ L+ M# q) H% A% G% Z9 Z
- RTS, e& E. |" m0 w3 K1 b
-
( U3 w( R" ~ e2 R$ K) C& ~
5 l% k) r# Y) b& r( Y! x- PLAYER_02_ADDR:- B$ H9 q3 x) D! z1 C
- .BYTE $20,$B3
) z- T1 P. z* V* k - PLAYER_02_DATA:
1 _8 M# r% i, p- _ - .BYTE CP,CL,CA,CY,CE,CR,CSP,C0,C2,CEND
: t4 w2 U% p, l% Q) `1 [ j - PLAYER_02_PPU:% T9 Z* S9 T* {% Q+ O- _
- LDX #$00' b3 C4 A# N5 N& M i4 E1 d+ C
- LDA PLAYER_02_ADDR4 R" o/ M' O$ B/ _" o
- STA $0703
/ Q2 s* N' c3 k4 M% r X - INX8 ?# a* O5 V! j9 c! J E3 c
- LDA PLAYER_02_ADDR,X8 M' A9 {* X: Q4 X. A: n, M9 q/ r
- STA $0704 j- {$ s# @; i6 H
- JSR PPU_PROCESS
/ _4 Q; b% l: O9 l$ K- P - PLAYER_02_W:2 L( }2 w" `, w- m2 K6 z; Z6 ?' p( s( [
- LDA PLAYER_02_DATA,X; U$ z3 B% |2 `% j
- CMP #CEND6 b: z. M3 w) ?, C
- BEQ PLAYER_02_START) B2 _+ G9 R, s# ?# d
- STA $0705,X, Y( w2 q* X% S3 @
- INX1 I$ A4 t0 K( `. |8 e
- LDA #$003 N5 G6 W j6 d5 x
- BEQ PLAYER_02_W; X) U8 A' _/ G: T. i
- PLAYER_02_START: m C2 X; n. ^: a8 ~
- JSR PPU_START3 W4 i7 x8 H0 D
- RTS
! Q* g' B1 `/ \9 w/ j3 \ -
& T8 ^# F6 i1 P4 G- L
% ^- J% A* E: X5 `, E/ X. V- RELIFE_P2_ADDR:' j$ z6 H4 z. P; [% l
- .BYTE $20,$F3
8 g+ V5 t0 H% k4 i' k - RELIFE_P2_DATA:& L6 i" \/ R" U2 x& e7 T
- .BYTE CR,CE,CL,CI,CF,CE,CEND
2 a/ u! ]; ?0 x' w: ?2 ` - RELIFE_P2_PPU:
6 ]1 Z4 X- D3 c5 A - LDX #$00
( s: o; `8 i- F) C$ b* ^7 k - LDA RELIFE_P2_ADDR; R2 H( C8 p$ H( n
- STA $0703+ T: \- y% `& y; r$ T* L. j8 V" N
- INX
) \$ _! P! |: \ p$ x - LDA RELIFE_P2_ADDR,X5 D1 r% d. T4 v' C. C7 ^, ~# s# H: B
- STA $07049 S( k1 b# i, z# m- j* `
- JSR PPU_PROCESS
2 c- f2 c) O4 q' \4 [ - RELIFE_P2_W:
9 r$ \) Z( M: M) I6 g) R" y4 Y - LDA RELIFE_P2_DATA,X
1 X* S2 V8 M! J( v5 w2 J! Y4 [ - CMP #CEND! c/ n8 H! \8 Y" I7 A7 G
- BEQ RELIFE_P2_START
$ o' L h6 w- L6 a7 n - STA $0705,X
( m4 w) e3 w( [2 i- |6 q" U8 ` - INX5 k: {8 Z' ]! ]3 N. ~& }( s
- LDA #$001 H. p& x1 ^# d3 Z9 s* U* p& X$ a
- BEQ RELIFE_P2_W/ y- o2 S4 j9 }* i
- RELIFE_P2_START:7 @5 w4 Q( M1 o6 t
- JSR PPU_START
; @1 B; m" X4 o0 |/ c& l - RTS% s m7 _/ S( j6 e8 Y/ w
1 {! k- n9 Q; `
' ^' J2 l$ J; R- RELIFE_NUMBER_P2_ADDR:. b0 w8 V4 `: o1 q9 j2 m1 S0 X: h0 }
- .BYTE $20,$FA
, V5 X& _8 A$ z, R V' J - RELIFE_NUMBER_P2_PPU:8 R5 V. \% ]& v7 X/ d' U% H
- LDX #$00( P* N) G; T$ s3 F7 V
- LDA RELIFE_NUMBER_P2_ADDR+ A0 g8 Q, L+ D4 g
- STA $0703' L) A* h9 p& G& D! B
- INX
' Q! _) I1 u" j+ } - LDA RELIFE_NUMBER_P2_ADDR,X
& u% R6 L; {. o1 \/ A - STA $0704$ d' ~/ v$ S3 R) F% h' k$ X" W; Y+ C
- JSR PPU_PROCESS
; A g) ~' w6 e; W, ? I! p" U - LDA $33
6 b7 ?1 i8 i- J- D - JSR LIFETODEC5 d2 U5 ?) F R5 f% T& e4 |5 o) h7 h
- RELIFE_NUMBER_P2_W:
+ Q8 f' K* v% g7 G - LDA $7A03/ z8 d) @' y; J2 S
- STA $0705
6 p$ f$ y: H# D+ w- Z - INC $0705 H+ y* M4 V. S& }% v8 w: R/ b+ }* P
- LDA $7A04
5 b. t$ r6 Q& m - STA $0706
3 y8 t4 W+ Q5 w0 Q+ D Q8 x - INC $0706" x8 r q& p! p* `
- LDA $7A05
* J8 r# s' ]/ C# n) h: C. u - STA $0707
6 `$ x0 J* v0 P9 S' n, u( N - INC $0707
! m9 }7 I M/ m- z - LDX #$03
5 w; C: Z; r, L - RELIFE_NUMBER_P2_START:
4 X% R3 i ]2 x+ P- | - JSR PPU_START
1 C% }; }7 C9 T! U1 k8 E - RTS
% M$ ^; Z% J- w. |) b - - Q+ x3 D0 ?& ]5 G% Z4 ~3 k
- WEAPON_P2_ADDR:
- ?; j P) L8 @; O5 S6 _* J - .BYTE $21,$333 E* F1 ]' p/ a( B5 T- T
- WEAPON_P2_DATA:
7 e" p, `; [2 f/ A; H# f7 @ - .BYTE CW,CE,CA,CP,CO,CN,CEND
; l$ }4 }5 j4 Y) y - WEAPON_P2_PPU:1 N5 o( C! C! v3 |1 u
- LDX #$00+ K0 s# r% p; ^2 [) [5 T
- LDA WEAPON_P2_ADDR
9 n" B# D9 h; E8 \4 i$ |! i' j1 w - STA $0703
I* e. p9 C( C& X - INX
`3 v# ]1 G7 w, I8 |; X - LDA WEAPON_P2_ADDR,X: G1 R% _* ]! S5 W- g) @
- STA $0704$ D+ t. u2 Q5 t. W! B4 Z7 _0 ~# A
- JSR PPU_PROCESS
# d) B9 t- _+ M) o7 M2 E& Y - WEAPON_P2_W:5 ~0 P0 w" p( s. B! v# p. _
- LDA WEAPON_P2_DATA,X
, O1 S7 {8 p% Q1 r - CMP #CEND! l" p! [9 H- J
- BEQ WEAPON_P2_START
, y$ ~0 B+ k7 ?1 o& E) B - STA $0705,X
7 n5 n) q+ m) |) W& a, f# H8 B - INX7 V E' M- p% a. U: O( a4 M
- LDA #$00
; i! J$ R7 q3 S4 Z: l4 k* [ - BEQ WEAPON_P2_W! a( k1 F1 _5 F) {
- WEAPON_P2_START:" R- X7 K* ]# H1 B, i* X& g* T+ D/ z
- JSR PPU_START1 Y$ j" Q/ k4 W. y N, r! e z
- RTS0 W$ b# v2 u, g, B/ E
+ A( m/ d: N6 O9 `. K- BULLET_P2_ADDR:
3 @& I8 o2 V2 m( k% O+ L# U - .BYTE $21,$3A
+ |" X4 f. q2 j- R/ [; D! S; s - BULLET_P2_DATA:* h) _' n* S( M; P$ X
- .BYTE $00,$01,$02,$03,$04
3 F4 N7 @8 Y3 Y3 ]4 B2 E - BULLET_P2_NAME:
8 E8 n7 F8 S9 k3 W y3 ^# f1 l - .BYTE CN,CM,CF,CS,CL, G; S3 X+ M8 J2 }; ?
' H/ j4 h6 c3 a6 N6 Z- BULLETPPU_P2_PPU:
; w6 N& D/ {; r, o - LDX #$00! P! @/ n4 |% V. k! K$ l
- LDA BULLET_P2_ADDR: }$ {* A o: L, Q- N5 D
- STA $0703
& S3 t' e$ M |8 t% V/ a3 R. a - INX
* Z5 G9 Q9 r" b5 @' Q2 k - LDA BULLET_P2_ADDR,X; A9 z6 R" N( G+ E
- STA $0704
' z8 v. y4 W3 b5 a! B - JSR PPU_PROCESS
2 _; w- Z4 G+ W+ z - BULLET_P2_WRITE:
$ Y& F" V* I1 _3 g6 L7 w b6 Y- d - LDX #$00- K8 A: H. ]% K# F; I$ J$ l
- LDA $AA
! @" N) d0 A; O8 W - AND #$109 n. T9 Y- n) @5 \; n: n
- BEQ C_BULLET_P2
0 f/ c L' C! K& l" u+ u( g - LDA #CS2 d) `0 J& ^4 R" E
- STA $0705
, |1 D1 _$ o% w" H - BNE B_NAME_P27 Y' k. O1 d+ B {3 M
- C_BULLET_P2:$ E& K- |& w3 ?% H: ?# U, t
- LDA #CC
0 E2 I7 r2 c8 n - STA $0705' e9 z. c0 @1 x, g; t% i7 x
- B_NAME_P2:8 ?% s1 i& i. _/ X% L4 v
- LDA $AB; u3 R' Z; g; r1 T0 [
- AND #$0F. U, h3 w; W& p8 ~6 X& ~& l$ x
- CMP BULLET_P2_DATA,X6 O2 W: r8 t9 E% V( u/ D
- BNE B_NAME_P2_RECMP/ ?$ b ^5 g# h
- LDA BULLET_P2_NAME,X3 W% f& U) ?4 I' C w# z! G( v) s
- STA $0706) e; c; S. g" @, m H9 H
- B_NAME_P2_RECMP$ d& [! o9 \2 a+ q
- INX! B+ y) J- H0 F
- CPX #$05" Y6 X8 O3 c- B" P
- BCC B_NAME_P2
$ U& ^0 w% U' [. e/ Q4 D0 l - LDX #$02 @" W$ p3 ]. ]: E: V# w$ b
- JSR PPU_START7 f0 G/ u3 w, |
- RTS
& T: f2 y; X2 {7 Y7 } - * Z% ^% n" |. [8 H
-
: g1 l# [6 ]) ^/ X6 m: ` - ; h0 m/ i2 Q, }' c$ S
$ ]5 f: }9 k+ F# W9 E* T2 |- ! }( H3 f! X" R
- : N2 S& {* f' `
- LIFETODEC: ;十进制转换
# I4 e0 \4 }% c9 Q) h - LIFEL1: ;initialise
/ t7 l$ o r0 K0 o) s5 e$ j - STA $7A00 ;$7A00=F3
! `' U6 `. |& {* q B- k7 m+ L& { - LDA #$00/ z, U2 n% I8 m7 }7 m
- STA $7A03 ;$7A03=00" _! C; A5 K4 \* B ]
- STA $7A04 ;$7A04=00
9 q2 s; F/ J+ @+ w$ d0 r# x0 n& W - STA $7A05 ;$7A05=003 K+ d5 {7 R7 f9 a. L
- LIFEL2: ;copy data $7A00 to 6001% W2 q- L4 _+ M
- LDA $7A00. ?* y2 _$ ]9 a. S1 k$ }7 U" Z
- STA $7A01" t& n% Y8 \+ r G% ]; \' L
- ' g( k0 a, o" O+ K+ B3 w D% d
- LIFEL3: ;hundred$ r, r) Q) X1 b1 D9 ~) T5 n: p
- LDA $7A01) s4 D8 O+ g) N% c, P
- CMP #$642 C2 x0 W: [4 u; I' Y( S+ T
- BCC LIFEL6 ;$7A01<100 goto L69 S: Q8 }9 e3 F" ~2 z7 v$ ^
- LIFEL4:
1 p C6 J5 E9 I& N5 m. j! b0 ^ - LDA $7A01
3 x8 _0 T( _2 h9 Q; O - SEC
0 b* y1 T( a% Q - SBC #$64 ;$7A01=$7A01-100* R1 X8 h$ @% G1 m2 z
- STA $7A01& z5 q6 `5 F( W. z6 Q' Z
- INC $7A03 ;hundred++
! z6 b; b8 w3 `& N - LIFEL5: }9 N i: J8 a
- LDA $7A01- |) y. B/ A( A8 S
- CMP #$642 z& N' E6 O( q1 y' Q
- BCS LIFEL4 ;$7A01>100 goto L4: ?# Q! n U T/ f3 M# r
/ B8 n, U d' q+ {7 w- LIFEL6: ;decade" s6 ]: q' r/ i6 \( } T1 i: l
- LDA $7A01
% @+ F) \8 G# ]0 L y; E/ w - CMP #$0A
/ c. a% @! F6 ?% }$ ?4 q# k! W - BCC LIFEL9 ;$7A01<10 goto L9
: s/ X$ o& C- ?) x3 ~0 L - LIFEL7:
* g: l( t3 R% M4 |; e; y - LDA $7A01
* P% `) d8 V7 X5 F p) e - SEC5 K6 c9 Y& Q7 c; u! h/ c, a0 m L5 H/ t
- SBC #$0A% _1 P9 {, D2 v' _
- STA $7A01 ;$7A01=$7A01-10
- T$ K, {+ O" O - INC $7A04 ;decade++
/ Q# d: B' y; I, V1 A0 l1 j - LIFEL8:2 P: @0 n0 [; I k( ?' H/ q: K
- LDA $7A01
1 ?6 A& Y, r6 u) W9 B6 ^ - CMP #$0A) i, L$ J3 U/ z, i. r+ s, [
- BCS LIFEL7 ;$7A01>10 goto L7* r6 o- i* {$ l6 c
- ;unit: `$ o% H8 z+ V% i
- LIFEL9:2 C6 M9 d0 ~4 M. h. C7 L& k8 i: Q) o
- LDA $7A01 ;$7A05=$7A01
9 k; w' L& M; j' n- i& @7 m& R- z - STA $7A05 ;unit
& E% ]! T0 t3 h" X w' @ - RTS ;return! S' d( D/ m3 Q) I
" g( B" j& I1 l1 P( h* U) i0 P- ' h4 C; y- `" F q
-
* k, U9 J% k6 Y9 L - PPU_PROCESS: ;PPU地址处理程序7 N2 H# \. ], m; V6 j1 V
- LDX #$00) R& |3 l$ ?& P4 U" N
- LDA $FF
5 z o* g$ D5 `7 y% s8 S: s - AND #$01- p5 d$ z2 M) m, s3 o8 Y
- BNE PPU_2400_27C0% y' B+ E1 d) Z: V2 V) h) q
- PPU_2000_23C0: ;命名表1
* l2 V! [; d' _+ `) N3 b5 Y - LDA $0703
4 O4 |; y3 m2 r# a; J/ Q - AND #$FB
, p, Q) e4 @6 ]7 V! P" T( h - STA $0703& V- I' q5 l& ^5 s# r7 T4 G
- RTS
8 s; l' b. m7 u$ f - PPU_2400_27C0: ;命名表2
/ N& i4 X/ f+ G9 z$ U: h5 J - LDA $0703$ T; |* j+ I# O6 W" e8 {* k2 v& ]
- ORA #$04
* y9 p% i' b4 w" \, `7 | - STA $07038 K% g$ M8 T7 Y; v- r
- RTS, q4 M) x/ g, c( ^, t q. V
- ! l' U" M* l0 C
- PPU_START: ;PPU数据写入
3 S5 k) b3 H1 m. H; \" F- z3 e& E - STA $21 }& j, O% l& A& \1 S5 a% C4 @
- STX $0701/ v& s/ Q4 K& q8 c
- LDA #$00
' [, `" h5 B; J - STA $0705,X
* P7 ?/ ^! p' R ?/ @* \: e( I9 t - LDA #$01
& ], N$ L7 i& F - STA $0700
% S& ?7 O2 B2 c5 V - STA $0702
# J* R3 H8 ?4 c) D. C% G - RTS
, a8 s1 N; t; R5 q. {4 W: e K1 x - : y- g' q* v/ y
4 Z1 v) C1 q; I- `4 g1 p% @3 F2 W. ^- - T! T3 _: M \1 y; z2 K! w
- 5 p9 e; `* _1 m$ Z8 h% u3 q3 C* _+ d
0 B! k8 j# N- T% p8 j( j, C
+ N- j7 e8 g+ c, `& N+ B4 w
复制代码
+ f+ [9 k/ u7 s0 T/ B |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|