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