-
Notifications
You must be signed in to change notification settings - Fork 0
/
Wave Multi-Emulator Collision Course Color combo rom (2023)(AArt1256 & oxiti8).8o
429 lines (382 loc) · 8.79 KB
/
Wave Multi-Emulator Collision Course Color combo rom (2023)(AArt1256 & oxiti8).8o
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
# WAVE V1.0.0 Demo program featuring Collision Course Color
# By AArt 1256 and Oxiti8
:alias plx vC
:alias ex vB
:alias ply v8
:alias ey v9
:alias wins vA
:alias px v1
:alias py v0
:alias counter v4
:alias sx v5
:alias sx2 v6
:alias star_index va
:alias hi_word v0
:alias lo_word v1
:alias temp v3
: main
i := blue
0xF1 0x03 # Foreground 1
i := blurple
0xF2 0x03 # Foreground 2
i := ltblue
0xF3 0x03 # Blended
i := hundreds
0xF0 0x03 # Background
i := barriercolor
0xF4 0x03 # plane 4
0xF5 0x03 # plane 5
hires
loop
v0 := sx
i := bufferx1
i += counter
save v0
py := random 63
i := buffery1
i += counter
v0 := py
save v0
v0 := sx2
i := bufferx2
i += counter
save v0
py := random 63
i := buffery2
i += counter
v0 := py
save v0
i := star
counter += 1
v9 := random 8
sx += v9
sx += 3
v9 := random 8
sx2 += v9
sx2 += 4
if counter < 8 then again
plane 1
star_index := 0
loop
plane 2
i := bufferx1
i += star_index
load v0
v7 := v0
i := buffery1
i += star_index
load v0
v8 := v0
v7 += v7
v7 += sx
i := star2
sprite v7 v8 1
plane 1
i := bufferx2
i += star_index
load v0
v7 := v0
i := buffery2
i += star_index
load v0
v8 := v0
v7 += v7
v7 += sx2
i := star2
sprite v7 v8 1
star_index += 1
if star_index < 8 then again
plane 3
i := WAVE
vd := 0
ve := 38
loop
vd += 16
sprite vd ve 0
vd -= 16
vf := 64
i += vf
vd += 16
if vd == 96 then ve += -16
if vd == 96 then vd := 0
if ve != 6 then
again
loop
star_index := 0
loop
plane 2
i := bufferx1
i += star_index
load v0
v7 := v0
i := buffery1
i += star_index
load v0
v8 := v0
v7 += v7
v7 += sx
i := star
sprite v7 v8 1
plane 1
i := bufferx2
i += star_index
load v0
v7 := v0
i := buffery2
i += star_index
load v0
v8 := v0
v7 += v7
v7 += sx2
i := star3
sprite v7 v8 1
star_index += 1
if star_index < 8 then again
sx += 2
sx2 += 4
i := reg_buf
save vf
i := reg_buf
load vf
loop
vf := delay
if vf != 0 then
again
vf := 2
delay := vf
v0 := OCTO_KEY_S
0xE0 0x9E
again
jump real
: word_add
lo_word += v2
hi_word += vf
;
: pointer_buffer
0x00 0x00
: star 0xF0
: star2 0xC0
: star3 0xcc
: bufferx1
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
: buffery1
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
: bufferx2
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
: buffery2
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
: reg_buf
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
: ltblue
0x00 0xFF 0xFF
: blue
0x00 0xC4 0xFF
: blurple
0x40 0x72 0xEE
: WAVE
0x01 0xFF 0x00 0xFF 0x00 0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0xFE 0x00 0x7E 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x80 0xFF 0x80 0xFF 0x00 0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x40 0xFE 0x00 0x7F 0x80 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xBF 0xC0 0xBF 0x80 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x40 0x00 0x40 0x40 0xCF 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xFF 0x7F 0x7F 0xBF 0x3F 0x8F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x7F 0x80 0x3F 0x40 0x40 0x70 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xEF 0xFF 0xFF 0xFF 0x00 0x5F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x30 0x0F 0x00 0x0F 0xFF 0xA0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xF8 0x00 0xF8 0x00 0xE0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xF0 0x00 0xF0 0x00 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x7F 0x00 0x7F 0x80 0x7F 0xC0 0x3F 0xC1 0x3F 0xE1 0x1F 0xE3 0x1F 0xE3 0x1F 0xF3
0x0F 0xF7 0x0F 0xFF 0x07 0xFF 0x07 0xFF 0x03 0xFF 0x03 0xFF 0x03 0xFF 0x01 0xFF
0x80 0x80 0x3F 0x00 0x3F 0x81 0x3F 0x80 0x1F 0xC2 0x3F 0xC0 0x0F 0xF4 0x0F 0xE4
0x07 0xF8 0x07 0xF0 0x07 0xF0 0x03 0xF8 0x03 0xF8 0x01 0xFC 0x01 0xFC 0x00 0xFE
0x7F 0x00 0xFF 0xC0 0xFF 0xC0 0xFF 0xC0 0xFF 0xE1 0xFF 0xE1 0xFF 0xF3 0xFF 0xF3
0xFF 0xFB 0xF7 0xFF 0xF7 0xFF 0xE7 0xFF 0xE3 0xFF 0xE3 0xFF 0xC1 0xFF 0xC1 0xFF
0x80 0x80 0x00 0x00 0x00 0x80 0x00 0xE1 0x01 0xC0 0x01 0xE2 0x03 0xE0 0x03 0xE4
0x03 0xF4 0x0F 0xF0 0x0B 0xF8 0x13 0xF8 0x11 0xFC 0x01 0xFC 0x20 0xFC 0x00 0xFE
0x3F 0x3F 0x7F 0x7F 0xFF 0xFF 0xFE 0xFF 0xFE 0xFF 0xFD 0xFF 0xFD 0xFF 0xFB 0xFF
0xFB 0xFF 0xFF 0xFB 0xF7 0xFB 0xFF 0xF3 0xEF 0xF1 0xFF 0xE1 0xDF 0xE1 0xDF 0xC0
0x40 0xC0 0x80 0x80 0x00 0x00 0x01 0x00 0x01 0x00 0x02 0x00 0x02 0x01 0x04 0x01
0x04 0x03 0x00 0x07 0x08 0x07 0x00 0x09 0x10 0x03 0x00 0x10 0x20 0x00 0x20 0x20
0x1F 0x80 0xDF 0xC0 0xDF 0xE0 0xEF 0xE0 0xEF 0xF0 0xFF 0xF0 0xF7 0xF1 0xFF 0xF9
0xFB 0xFB 0xFB 0xFF 0xFD 0xFF 0xFD 0xFF 0xFF 0xFF 0xFE 0xFF 0xFF 0xFF 0xFF 0x7F
0xE0 0x40 0x20 0x20 0x60 0x00 0xD0 0x10 0xF0 0x00 0xE0 0x08 0xF8 0x08 0xF0 0x00
0xF4 0x05 0xFC 0x01 0xFA 0x01 0xFE 0x01 0xFC 0x00 0xFF 0x00 0xFE 0x00 0x7F 0x80
0x3F 0xCF 0x7F 0xFF 0x7F 0xBF 0x7F 0xBF 0xFF 0x7F 0xFF 0x7F 0xFE 0xFF 0xFE 0xFF
0xFF 0xFF 0xFD 0xFF 0xFF 0xFF 0xFB 0xFF 0xFB 0xFF 0xF7 0xFB 0xF7 0xFF 0xFF 0xFF
0x00 0x30 0x3F 0x80 0x3F 0xC0 0xFF 0x40 0x7F 0x80 0x7E 0x80 0xFF 0x00 0xFD 0x00
0xFC 0x00 0xFE 0x01 0xF8 0x01 0xFC 0x03 0xF4 0x03 0xF8 0x04 0x68 0x00 0x60 0x07
0xDF 0xFC 0xFF 0xFE 0xFF 0xFC 0xFF 0xF8 0xFF 0xF8 0xFF 0xF0 0xFF 0xE0 0x7F 0xC0
0xFF 0xC0 0xFF 0xC0 0xFF 0x80 0xFF 0x00 0xFF 0x00 0xFC 0x00 0xFC 0x00 0xFC 0x00
0x20 0x02 0x1F 0xFC 0x3F 0xF8 0x3F 0xF0 0x3F 0xF0 0x7F 0xE0 0x00 0x00 0x80 0x20
0xFF 0x80 0xFF 0x80 0xFF 0x00 0xFE 0x00 0xFE 0x00 0x03 0x00 0x0A 0x00 0xF8 0x00
: real
plane 15
lores
# Sets up initial color
i := roadcolor
0xF0 0x03 # plane 0
i := playercolor
0xF1 0x03 # plane 1
i := countdowncolor
0xF2 0x03 # plane 2
i := barriercolor
0xF4 0x03 # plane 4
0xF5 0x03 # plane 5
i := powcolor
0xF8 0x03 # plane 8
0x00 0xF3
# Draws the track
v1 := 0
wins := 0
ex := 58
plx := 0
:call drawhoriz
v1 := 23
:call drawhoriz
# Draw the two cars on the track
ply := 2
ey := 12
plane 1
i := playercar
sprite plx ply 5
sprite ex ey 5
plane 2
# Begin countdown
vE := 30
v4 := 3
i := hex v4
sprite vE ey 5
loop
v5 := 60
delay := v5
buzzer := v4
loop
v5 := delay
if v5 != 0 then
again
sprite vE ey 5
v4 -= 1
i := hex v4
sprite vE ey 5
if v4 != 0 then
again
sprite vE ey 5
# Begin the Race
loop
plane 3
clear
# Draws the track
plane 2
vD := 23 # Score
vE := 26
i := hundreds
bcd wins
load v0
i := hex v0
sprite vD vE 5
i := tens
vD += 7
load v0
i := hex v0
sprite vD vE 5
vD += 7
i := ones
load v0
i := hex v0
sprite vD vE 5
plane 1
v7 := plx
v0 := OCTO_KEY_W
if v0 key then plx += 1
if plx == 64
then :call moveplayer
v0 := OCTO_KEY_A
if v0 key then ply -= 1
v0 := OCTO_KEY_D
if v0 key then ply += 1
ex -= 2
if ex >= 64
then :call moveenemy
v1 := 0
:call drawhoriz
v1 := 23
:call drawhoriz
plane 1
i := playercar
sprite ex ey 5
sprite plx ply 5
if vf == 1 then
jump lose
loop
vf := delay
if vf != 0 then
again
vf := 3
delay := vf
again
: lose
plane 8
0x00 0xF1 # OR mode
i := pow
sprite plx ply 15
v1 := 20
buzzer := v1
loop
0xFE 0x0A # wait for key 8
if vE != 8 then
again
jump real
: moveplayer
wins += 1
plx := 0
buzzer := v4
;
: moveenemy
ey := random 0b0001111
ey += 1
ex := 62
;
: drawhoriz
0x00 0xF1
v4 := 0
plane 5
i := line
loop
sprite v4 v1 1
v4 += 8
0x34 0x40
again
0x00 0xF3
;
: roadcolor
0x50 0x50
: playercar
0x50 0xF8 0xD8 0xF8 0x50
: playercolor
0x00 0xB0 0xF0
: powcolor
0xFF 0x00 0x00
: barriercolor
0xF3 0x99 0x00
: countdowncolor
0xFF # cheating here to save 2 bytes
: line
0xFF 0xFF
: pow
0xF8 0x88 0xF8 0x80 0x80 0x00 0xF8 0x88 0x88 0xF8 0x00 0xA8 0xA8 0xA8 0x50
: hundreds 0
: tens 0
: ones 0