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