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