-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstars.fth
More file actions
137 lines (115 loc) · 2.22 KB
/
stars.fth
File metadata and controls
137 lines (115 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
REQUIRE std.fth
REQUIRE cgram.fth
REQUIRE build/farstars.p1.map.fth
REQUIRE build/farstars.tiles2b.fth
REQUIRE build/starfield.p2.map.fth
REQUIRE build/stars.tiles.fth
REQUIRE vram.fth
: COPY-STARS
STARS-TILES
STARS-TILES-BANK
STARS-TILES-BYTES
STARS-BG-TILE-BASE TILE-BASE-TO-VRAM-WORD
DMA0-VRAM-LONG-TRANSFER
;
: COPY-FARSTARS
FARSTARS-TILES
FARSTARS-TILES-BANK
FARSTARS-TILES-BYTES
FARSTARS-BG-TILE-BASE TILE-BASE-TO-VRAM-WORD
DMA0-VRAM-LONG-TRANSFER
;
: COPY-STARS-PALETTE
STARS-PAL
STARS-PAL-BANK
STARS-PAL-BYTES
\ TODO: This is never actually used, the tilemap defaults to the 0th palette.
0x20
COPY-CGRAM-PALETTE-LONG
;
: COPY-FARSTARS-PALETTE
FARSTARS-PAL
FARSTARS-PAL-BANK
FARSTARS-PAL-BYTES
\ Palette 1 (for 2-bit BGs)
0x04
COPY-CGRAM-PALETTE-LONG
;
: STARS-COPY-BG2
STARFIELD-MAP STARFIELD-BANK
STARS-BG-MAP-BASE MAP-BASE-TO-VRAM-WORD
COPY-BG-TO-VRAM
;
: STARS-COPY-BG3
FARSTARS-MAP FARSTARS-BANK
FARSTARS-BG-MAP-BASE MAP-BASE-TO-VRAM-WORD
COPY-BG-TO-VRAM
;
BANK@
LOWRAM BANK!
CREATE STARS-TICKS 1 CELLS ALLOT
CREATE STARS-NMI-STATE 1 CELLS ALLOT
BANK!
: SCROLL-STARFIELD
STARS-TICKS @
LSR LSR LSR
\ X for BG2
DUP 0x210F C!
DUP HIBYTE 0x210F C!
\ Y for BG2
LSR LSR
DUP 0x2110 C!
DUP HIBYTE 0x2110 C!
\ X for BG3
DUP 0x2111 C!
DUP HIBYTE 0x2111 C!
\ Y for BG3
LSR LSR
DUP 0x2112 C!
HIBYTE 0x2112 C!
;
\ Returns TRUE when all initialization has completed.
( -- done-loading )
: STARS-NMI
STARS-NMI-STATE @ CASE
0 OF
0x1460 SET-BACKDROP-COLOR
COPY-STARS
COPY-STARS-PALETTE
1 STARS-NMI-STATE +!
FALSE
ENDOF
1 OF
COPY-FARSTARS
COPY-FARSTARS-PALETTE
1 STARS-NMI-STATE +!
FALSE
ENDOF
2 OF
STARS-COPY-BG2
1 STARS-NMI-STATE +!
FALSE
ENDOF
3 OF
STARS-COPY-BG3
1 STARS-NMI-STATE +!
FALSE
ENDOF
4 OF
0x06 0x06 BG-LAYER-ENABLE MASK!
STARS-BG-TILE-BASE BG2-TILE-BASE!
FARSTARS-BG-TILE-BASE BG3-TILE-BASE!
STARS-BG-MAP-BASE 0x2108 C!
FARSTARS-BG-MAP-BASE 0x2109 C!
SCROLL-STARFIELD
TRUE
ENDOF
ENDCASE
;
: STARS-INIT
0 STARS-NMI-STATE !
0 STARS-TICKS !
;
: STARS-MAIN
1 STARS-TICKS +!
;