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