scroll left and right work in stdef and hidef adds octo test roms adds schip fonts to memory
383 lines
8.7 KiB
Plaintext
383 lines
8.7 KiB
Plaintext
###########################################
|
|
#
|
|
# Snow Daze
|
|
#
|
|
# Clear all the snow off your driveway
|
|
# before you're late for work!
|
|
# Press ASWD to move around the driveway
|
|
# and press E to shovel snow behind you.
|
|
# Runs best at 100 cycles/frame.
|
|
#
|
|
# Created for the 2015 CCP Game Jam
|
|
# Theme: Winter
|
|
#
|
|
###########################################
|
|
|
|
:alias px va
|
|
:alias py vb
|
|
:alias dir vc
|
|
:alias frame vd
|
|
:alias timer v9
|
|
:alias timerx v8
|
|
:alias endflag v7
|
|
|
|
:const LEFT 45
|
|
:const RIGHT 0
|
|
:const TICK_TIME 8
|
|
:const SNOWFALL 8
|
|
|
|
: draw-image
|
|
v0 := 0
|
|
v1 := 0
|
|
v2 := 32
|
|
loop
|
|
sprite v0 v1 0
|
|
i += v2
|
|
v0 += 16
|
|
if v0 == 128 begin
|
|
v0 := 0
|
|
v1 += 16
|
|
end
|
|
if v1 != 64 then
|
|
again
|
|
;
|
|
|
|
: draw-player
|
|
i := person-r
|
|
i += dir
|
|
i += frame
|
|
sprite px py 15
|
|
;
|
|
|
|
: do-snow
|
|
i := snow
|
|
v3 := 0
|
|
loop
|
|
v1 := random 0b111111
|
|
v1 += 32
|
|
v2 := random 0b11111
|
|
v2 += 16
|
|
sprite v1 v2 15
|
|
v0 := 5 wait
|
|
v3 += 1
|
|
if v3 != SNOWFALL then
|
|
again
|
|
;
|
|
|
|
: do-scoop
|
|
frame := 15
|
|
draw-player
|
|
v0 := 5 gamewait
|
|
draw-player
|
|
frame := 30
|
|
draw-player
|
|
v0 := 5 gamewait
|
|
draw-player
|
|
frame := 0
|
|
|
|
v1 := py
|
|
i := snow
|
|
|
|
:macro scoop DELTA1 DELTA2 {
|
|
v0 := px
|
|
v0 += DELTA1
|
|
sprite v0 v1 15
|
|
if vf == 0 begin
|
|
sprite v0 v1 15
|
|
else
|
|
v0 += DELTA2
|
|
sprite v0 v1 15
|
|
if vf == 1 then sprite v0 v1 15
|
|
end
|
|
}
|
|
if dir == LEFT begin
|
|
scoop -8 16
|
|
else
|
|
scoop 8 -16
|
|
end
|
|
;
|
|
|
|
: move-player
|
|
vf := 5 if vf key begin
|
|
if py != 10 then py += -1
|
|
end
|
|
vf := 8 if vf key begin
|
|
if py != 0x31 then py += 1
|
|
end
|
|
vf := 7 if vf key begin
|
|
px += -1
|
|
dir := LEFT
|
|
end
|
|
vf := 9 if vf key begin
|
|
px += 1
|
|
dir := RIGHT
|
|
end
|
|
vf := 6 if vf key then do-scoop
|
|
;
|
|
|
|
: countdown
|
|
if timer == 0 begin
|
|
timer := TICK_TIME
|
|
vf := 4
|
|
i := timeslice
|
|
sprite timerx vf 3
|
|
timerx += -1
|
|
if timerx == 3 then endflag := 1
|
|
else
|
|
timer += -1
|
|
end
|
|
;
|
|
|
|
: gamewait
|
|
loop
|
|
sync
|
|
countdown
|
|
v0 += -1
|
|
if v0 != 0 then
|
|
again
|
|
;
|
|
|
|
: wait
|
|
loop
|
|
sync
|
|
v0 += -1
|
|
if v0 != 0 then
|
|
again
|
|
;
|
|
|
|
: game-over
|
|
draw-player
|
|
v0 := 20 wait
|
|
|
|
v1 := 32
|
|
v2 := 15
|
|
v3 := 0
|
|
i := block
|
|
loop
|
|
sprite v1 v2 0
|
|
if vf != 0 then v3 += 1
|
|
v0 := 5 wait
|
|
sprite v1 v2 0
|
|
v1 += 16
|
|
if v1 == 96 begin
|
|
v1 := 32
|
|
v2 += 16
|
|
end
|
|
if v2 != 63 then
|
|
again
|
|
i := bighex v3
|
|
v1 := 60
|
|
v2 := 14
|
|
sprite v1 v2 10
|
|
|
|
v0 := 20 wait
|
|
v0 := key
|
|
setup
|
|
;
|
|
|
|
: sync
|
|
loop
|
|
vf := delay
|
|
if vf != 0 then
|
|
again
|
|
vf := 2
|
|
delay := vf
|
|
;
|
|
|
|
: intro-num
|
|
i := bighex v0
|
|
v1 := 60
|
|
v2 := 14
|
|
sprite v1 v2 10
|
|
v0 := 10 wait
|
|
sprite v1 v2 10
|
|
;
|
|
|
|
: setup
|
|
clear
|
|
i := background
|
|
draw-image
|
|
timerx := 123
|
|
timer := 0
|
|
px := 64
|
|
py := 32
|
|
endflag := 0
|
|
draw-player
|
|
do-snow
|
|
v0 := 10 wait
|
|
v0 := 3 intro-num
|
|
v0 := 2 intro-num
|
|
v0 := 1 intro-num
|
|
;
|
|
|
|
: main
|
|
hires
|
|
setup
|
|
loop
|
|
draw-player
|
|
move-player
|
|
draw-player
|
|
countdown
|
|
if endflag == 1 then game-over
|
|
sync
|
|
again
|
|
|
|
: timeslice
|
|
0x80 0x80 0x80
|
|
: block
|
|
0x00 0x00 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE
|
|
0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE
|
|
0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE
|
|
0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x00 0x00
|
|
: snow
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x7E 0x7E 0x7E 0x00
|
|
: person-r
|
|
0x38 0x38 0x28 0x3C 0x78 0x70 0x78 0x78
|
|
0xF8 0xF8 0xFB 0x7F 0x4F 0x4B 0x6C
|
|
: scoop1-r
|
|
0x00 0x1C 0x1C 0x14 0x1E 0x7C 0xF8 0xF8
|
|
0xFC 0xFC 0xFC 0x7F 0x4F 0x4F 0x6F
|
|
: scoop2-r
|
|
0xC0 0xCE 0x4E 0x6A 0x7F 0xFE 0x78 0x7E
|
|
0x7C 0xF8 0xF8 0xF8 0x38 0x48 0x6C
|
|
: person-l
|
|
0x1C 0x1C 0x14 0x3C 0x1E 0x0E 0x1E 0x1E
|
|
0x1F 0x1F 0xDF 0xFE 0xF2 0xD2 0x36
|
|
: scoop1-l
|
|
0x00 0x38 0x38 0x28 0x78 0x3E 0x1F 0x1F
|
|
0x3F 0x3F 0x3F 0xFE 0xF2 0xF2 0xF6
|
|
: scoop2-l
|
|
0x03 0x73 0x72 0x56 0xFE 0x7F 0x1E 0x7E
|
|
0x3E 0x1F 0x1F 0x1F 0x1C 0x12 0x36
|
|
|
|
: background # (1024 bytes)
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xE0 0x00
|
|
0xEF 0xFF 0xEF 0xFF 0xEF 0xFF 0xE0 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x7F 0xFF 0x7F 0xFF 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00
|
|
0xFF 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x07
|
|
0xFF 0xF7 0xFF 0xF7 0xFF 0xF7 0x00 0x07
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
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 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 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 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 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFC 0xFF 0xFE
|
|
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 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 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 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 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFE
|
|
0xFF 0xFF 0xFF 0xFF 0xF8 0xFB 0x00 0x00
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE
|
|
0xFF 0xFC 0xFF 0xFC 0xFF 0xEE 0xFF 0xFE
|
|
0xFF 0xFE 0xFF 0xFE 0xFF 0xFC 0xFF 0xF8
|
|
0xFF 0xB8 0xFF 0xF0 0x8F 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
|
|
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 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 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 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x5F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x3F 0xFF 0x5F 0xFF 0x7F 0xFF 0x7F 0xFF
|
|
0x3F 0xFF 0x3E 0xFF 0x3F 0xFF 0x1F 0xFF
|
|
0x0F 0xDF 0x01 0xFF 0x00 0x3D 0x00 0x00
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
|
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x7F
|
|
0xFF 0xFF 0xFF 0xFF 0xFE 0x1F 0x00 0x00
|