/
htwml_mini.p8
863 lines (764 loc) · 32.5 KB
/
htwml_mini.p8
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
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
pico-8 cartridge // http://www.pico-8.com
version 16
__lua__
-- time's race against time
-- by lydianchord
-- loosely based on
-- her tears were my light
-- by nomnomnami
goal = 15000
col_cycle = {3, 11, 7, 11}
end_text = {
"are you crying?",
"you're alive!",
"i want to save you.",
"please don't cry..."
}
state = {
title = 0,
main = 1,
fail = 2,
ending = 3
}
object = {
x = 0,
y = 0,
w = 1,
h = 1,
t = 0
}
function object:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
function object:rand_pos(y)
self.x = rnd(129 - self.w)
self.y = y or rnd(129 - self.h)
end
function object:cycle_sprite()
if self.sprite > self.end_spr then
return
end
local mod_per = self.per
if self.per then
mod_per = flr(mod_per / mod_spd)
end
if mod_per and
(self.t % mod_per == 0 or
mod_per < 1)
then
self.sprite += 1
if self.sprite > self.end_spr then
self.sprite = self.start_spr
end
end
end
function object:advance()
self.t += 1
self.y += mod_spd
self:cycle_sprite()
end
function object:draw()
spr(
self.sprite,
self.x,
self.y
)
end
-->8
-- subclasses
background_star = object:new()
function background_star:new()
local o = object.new(
self,
{
spd_div = (rnd(3) + 2) ^ 2
}
)
o:rand_pos()
if o.spd_div < 9 then
o.col = 7
elseif o.spd_div < 16 then
o.col = 6
else
o.col = 13
end
return o
end
function background_star:advance()
self.y += mod_spd / self.spd_div
if self.y > 128 then
self:rand_pos(-8)
end
end
function background_star:draw()
local pt_col = pget(self.x, self.y)
if pt_col > 0 then
if self.col == 13 or
self.col == 6 and
pt_col ~= 13
then
return
end
end
pset(self.x, self.y, self.col)
end
hittable = object:new()
function hittable:new(
w, h, start_spr, end_spr, per,
sound, line_col, excess
)
local o = object.new(
self,
{
w = w,
h = h,
sprite = start_spr,
start_spr = start_spr,
end_spr = end_spr,
per = per,
sound = sound,
line_col = line_col,
live = true,
hit_frame = -1
}
)
if w then
o:rand_pos(excess - 64)
end
return o
end
function hittable:start_hit()
if self.hit_frame < 0 then
self.t = 0
self.hit_frame = 0
self.sprite = self.end_spr
end
end
function hittable:overlaps(o)
if self.x < o.x + o.w and
self.x + self.w > o.x and
self.y < o.y + o.h and
self.y + self.h > o.y and
self.hit_frame < 0
then
self:start_hit()
sfx(self.sound, 2)
return true
end
return false
end
function hittable:advance()
object.advance(self)
if self.y > 128 then
self.live = false
end
local mod_per = flr(5 / mod_spd)
if self.hit_frame > -1 and
(self.t % mod_per == 0 or
mod_per < 1)
then
self.hit_frame += 1
self.sprite = self.end_spr + self.hit_frame
if self.hit_frame > 3 then
self.live = false
end
end
end
function hittable:draw()
if self.y + self.h < 0 then
local x = self.x + self.w * 0.5
line(x, 0, x, 7, self.line_col)
else
object.draw(self)
end
end
star = hittable:new()
function star:new(excess)
return hittable.new(
self, 7, 6,
16, 16, nil,
0, 10, excess
)
end
trap = hittable:new()
function trap:new(excess)
return hittable.new(
self, 8, 8,
32, 35, 20,
1, 2, excess
)
end
homing_trap = hittable:new()
function homing_trap:new(excess)
return hittable.new(
self, 7, 7,
48, 51, 15,
1, 2, excess
)
end
function homing_trap:advance()
local dx = mod_spd * 0.1
if self.x < player.x then
self.x += dx
elseif self.x > player.x then
self.x -= dx
end
hittable.advance(self)
end
-->8
-- utility functions
function shown_dist()
return flr(distance / 3)
end
function x_for_h_center(s)
return 64 - #s * 2
end
function text_rect(s, x, y)
rectfill(
x - 1,
y - 1,
x + #s * 4 - 1,
y + 5,
0
)
end
function print_lines(lines, y, col, bg_rect)
for ln in all(lines) do
local x = x_for_h_center(ln)
if bg_rect then
text_rect(ln, x, y)
end
print(
ln,
x,
y,
col
)
y += 10
end
end
function fade(col, keep_mus)
if not keep_mus then
music(-1, 250)
end
for i = 0, 15 do
for j = 0, 240, 16 do
local pos = i + j
line(0, pos, pos, 0, col)
end
flip()
end
end
function make_bg_stars(n)
local bg_stars = {}
for i = 1, n do
add(
bg_stars,
background_star:new()
)
end
return bg_stars
end
-->8
-- init
function title_screen()
top_speed = dget(0)
bg_stars = make_bg_stars(
max(25, top_speed + 5)
)
local cur_sfx = stat(16)
if cur_sfx < 8 or
cur_sfx > 11
then
music(0)
end
mode = state.title
t = 0
end
function begin_game()
sfx(29)
fade(7)
music(7)
mode = state.main
t = 0
distance = 0
spawn_pt = 8
speed = 20
new_top_spd = speed
shake_time = 0
space = nil
spawn_lim = {
star = 10,
homing_trap = 15,
trap = 30,
}
player = object:new({
x = 61,
y = 112,
w = 6,
h = 8,
sprite = 3,
start_spr = 2,
end_spr = 5,
per = 8
})
player.r_lim = 128 - player.w
bg_stars = make_bg_stars(25)
stars = {}
traps = {}
end
function _init()
cartdata("lydianchord_htwml_mini")
title_screen()
end
-->8
-- update
function _update60()
if mode == state.main then
if speed <= 0 and
distance < goal
then
fade(0)
music(4)
mode = state.fail
return
end
slow_mode = false
if btn(⬇️) or btn(⬆️) then
slow_mode = true
end
t += 1
mod_spd = speed * 0.05
if slow_mode then
mod_spd = min(
1,
mod_spd * 0.5
)
end
distance += mod_spd
if speed > new_top_spd then
new_top_spd = speed
end
if shake_time > 0 then
shake_time -= 1
end
-- player
player.t += 1
player:cycle_sprite()
if btn(⬅️) then
player.x -= mod_spd * 0.5
elseif btn(➡️) then
player.x += mod_spd * 0.5
end
if player.x < 0 or
player.x > player.r_lim
then
player.x = mid(
0,
player.x,
player.r_lim
)
end
-- bg stars
for bg_st in all(bg_stars) do
bg_st:advance()
end
-- hittable objects
if distance > spawn_pt and
distance < goal
then
local excess = distance - spawn_pt
local roll = rnd(100)
if roll < spawn_lim.star then
add(stars, star:new(excess))
elseif roll < spawn_lim.homing_trap then
add(traps, homing_trap:new(excess))
elseif roll < spawn_lim.trap then
add(traps, trap:new(excess))
end
spawn_pt += 8
end
for st in all(stars) do
st:advance()
if not st.live then
del(stars, st)
end
if st:overlaps(player) then
if slow_mode then
speed += 1
else
speed += 5
end
end
end
for tr in all(traps) do
tr:advance()
if not tr.live then
del(traps, tr)
end
if tr:overlaps(player) then
speed = mid(
0,
flr(speed * 0.5),
speed - 10
)
shake_time = 8
end
end
-- space
if space then
space:advance()
if space.y > 60 then
fade(7)
music(0)
mode = state.ending
end
end
-- distance events
if distance < goal then
if t % 60 == 0 or
slow_mode and t % 30 == 0
then
speed -= 1
spawn_lim.trap += 0.25
end
elseif not space then
music(-1, 2500)
local idx = flr(rnd(#end_text)) + 1
chosen_end_text = end_text[idx]
for st in all(stars) do
st:start_hit()
end
for tr in all(traps) do
tr:start_hit()
end
space = object:new({
x = 61,
y = -8,
sprite = 6,
start_spr = 6,
end_spr = 9,
per = 16
})
speed = 10
if new_top_spd > top_speed then
top_speed = new_top_spd
dset(0, top_speed)
end
end
elseif mode == state.title then
t += 1
if btn(❎) then
begin_game()
end
elseif mode == state.fail then
if btn(❎) then
sfx(29)
fade(0)
title_screen()
end
elseif mode == state.ending then
if btn(❎) then
sfx(29)
fade(0, true)
title_screen()
end
end
end
-->8
-- draw
function _draw()
camera()
cls()
if mode == state.main then
if shake_time > 0 and
speed > 0
then
local range = shake_time
if shake_time % 2 == 0 then
range += 1
end
local offset = {}
for i = 1, 2 do
add(
offset,
rnd(range) - shake_time * 0.5
)
end
camera(
offset[1],
offset[2]
)
end
for bg_st in all(bg_stars) do
bg_st:draw()
end
for tr in all(traps) do
tr:draw()
end
for st in all(stars) do
st:draw()
end
if space then
space:draw()
end
player:draw()
local text_col = 12
if slow_mode then
text_col = 14
else
if speed < 10 then
text_col = 8
elseif speed >= 50 then
text_col = 11
end
end
camera()
print(
"fast fwd pwr: " .. speed ..
" dist: " .. shown_dist(),
1, 1, text_col
)
elseif mode == state.title then
for bg_st in all(bg_stars) do
bg_st:draw()
end
palt(0, false)
palt(11, true)
sspr(0, 64, 128, 64, 0, 64)
palt()
local idx = flr(t / 15) % #col_cycle + 1
local text_col = col_cycle[idx]
local text = {
"time's race against time",
"by lydianchord"
}
print_lines(text, 21, 7, true)
text = {
"press x to begin"
}
print_lines(text, 51, text_col, true)
if top_speed > 0 then
text = "best fast fwd pwr: " .. top_speed
text_rect(text, 1, 1)
print(text, 1, 1, 7)
end
elseif mode == state.fail then
local text = {
"rewinding...",
"",
"final distance: " .. shown_dist()
}
print_lines(text, 52, 14)
elseif mode == state.ending then
cls(7)
local text = {
'"' .. chosen_end_text .. '"',
"",
"best fast fwd pwr: " .. new_top_spd,
"all-time best: " .. top_speed
}
print_lines(text, 47, 4)
end
end
__gfx__
000000000000000000000000ad11da0000000000ad11da0000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000ad11da00adddda00ad11da00adddda000066a0000066a0000066a0000066a000000000000000000000000000000000000000000000000000
0070070000000000adddda0001111000adddda000111100006666000066660000666600006666000000000000000000000000000000000000000000000000000
0007700000000000011110000111100001111000011110000dddd0000dddd0000dddd0000dddd000000000000000000000000000000000000000000000000000
0007700000000000011110001155110001111000115511000d77d0000d77d0000d77d0000d77d000000000000000000000000000000000000000000000000000
007007000000000011511000117711000115110011771100d7667d00dd767d00d7667d00d767dd00000000000000000000000000000000000000000000000000
000000000000000011711000077770000117110007777000d6666d00d6666d00d6666d00d6666d00000000000000000000000000000000000000000000000000
000000000000000007777000005500000777700000550000d6aa6d00d6aa6d00d6aa6d00d6aa6d00000000000000000000000000000000000000000000000000
000a0000000a0000000a0000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00aaa00000aaa000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
aaaaaaa0aaa0aaa0aa000aa0a00000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0aaaaa000a000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0aaaaa000aaaaa0000a0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0a000a000a000a000a000a000a000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02200220022002202002200220022002200220022002200220020002000000000000000000000000000000000000000000000000000000000000000000000000
20022002200220020021110000000200000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
20200202202112020111212002020000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02020020021121202121111220000202200000022000000200000002000000000000000000000000000000000000000000000000000000000000000000000000
02002020021211202111121220200002200000022000000220000000000000000000000000000000000000000000000000000000000000000000000000000000
20200202202112020212111000002020000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
20022002200220020011120000200000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02200220022002202002200220022002200220022002200220002002000000000000000000000000000000000000000000000000000000000000000000000000
00800200200800200020100000020000000200000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000
20002000020002000020000001020100010201000100010001000100000000000000000000000000000000000000000000000000000000000000000000000000
02202080002020001002022000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00080000800800800021200022212220220002202000002000000000000000000000000000000000000000000000000000000000000000000000000000000000
80202200002020002202001000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00200020020002000000200001020100010201000100010001000100000000000000000000000000000000000000000000000000000000000000000000000000
02008000200800200010200000020000000200000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb55669bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb55555bbbbbb75a77a669bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaa9555575bb55aaaaaaa69bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaa955575b55aa111111111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaa9555555111111111111111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaa955551111111111111111111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaa951111111111111111111111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaa9111111111111111111111111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaa11111111111111111111111111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaa1111111111111d11111111151111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaa111111111111111d1111111115111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaa111111111111111000111111001111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaa1111111111511110dd1111111110111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaa1111111111511111dddddddddd155111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaa111111111151111dddddddddddd11551bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaa11111111111511dddddddddddddd11115bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaa1111111111151dddd000dddddd00d111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111151111dddd0ddd0dddd0dd011bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111151111ddd0ddd0ddddddd0d11bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111151111ddddddd0ddddddd0d11bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111151111dddd0000000dd000000bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111151111dd000660660000606501bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111511100dd0667660dd0676501bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111111151111dddd00000dddd000011bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111dd1111ddddddddddddddddd11bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111dddd1111ddddddddddddddddd11bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111ddddddd111ddddddddddddddddd111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111dddddd1111dddddddddddddddd111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111dddd1111dddddddddddddddd111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111dd1111dddddddddd22dddb111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111111115111ddddddddd22ddddb111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111111111111151111dddddddddddddbb111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111151111ddddddddddd11bb111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111111111111111151115dddddd111111bb11bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111151115ddddd1111111bb11bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111111111111111111151177dddd7711111bb1bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111117177ddd77771111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111111111111111111111177777dd77771111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111177007777ddd7711111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111111111111111767700077ddd7701111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111177767000077d77007111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111111111111111111111777677000aaaaa007611bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111177777670aa07a70a067111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111111111111111177777670007a7a70067111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111111111111111177777670000a7a00077111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111177777767000a070a0007111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111111111111111177777760000a000a0007711bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111111111111111177777670000000000007711bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111b11111111111111111111117777770000000000000077111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111a11111111111111111111117777710000000000000077111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111a11111111111111111111177777110000000000000777111bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111a11111111111111111111777777100000000000000777711bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbb11bbbbb11111111111a11111111111111111111777771100000000000000777711bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbb11111bbb111111111111a1111111111111111117777771100000000000001777711bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbb1111111b111111111111a1111111111111111177777711700000000000001777711bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbb11111111a1111111111111a111111111111111177777111770000000000001777711bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbb11111111a11111111111111a11111111111111777777111777700000770001777771bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbb1111111a111111111111111a111111111111777777111777777007777707177777bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbb111111a1111111111111111aa11111111bb777777111777777777777777177777bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbb1111111111a11111111111111111aabbbbbbb777777b111777777777777777117777bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbb1111111111a1111111111111111111bbbbbb777777b11177777777777777711177777bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbb111111111a1111111111111111111bbbbbb777777b11777777777777777711177777bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbb1111111111a11111111111111111bbbbbb777777bb11777777777777777711177777bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbb1111111111a111111111111111bbbbbb777777711a7777777777777777711b77777bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
__sfx__
000100002105028050300500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000100002e050210501a050140500f0500c0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
010d000018575185350c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c500
0112000018575185250c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c5000c500
0115000018575185250c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c5050c505
010200001867018640186201861000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
010800041847610476184761347600400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400
01080004184760f476184761447600400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400004000040000400
012800002fc5031c5032c5000c0000c002fc5031c5032c5036c5034c502fc5000c0000c0000c0031c5000c002dc5000c0000c0000c0000c0000c0000c002bc502ac5000c0000c0000c0000c0000c002dc5000c00
012800002fc5031c5032c5000c0000c002fc5031c5032c5036c5034c5032c5000c0000c0000c0034c5000c0031c5000c002dc5000c0000c0000c0000c002bc502ac5000c0000c0028c5026c5000c0000c0000c00
012800002dc502bc502bc5321c001fc001fc0000c0000c002dc502bc502bc531dc001cc001ac001ac0000c002dc502bc502ac5000c0000c0000c0028c5000c0028c5000c0000c0000c0026c5000c0000c0000c00
012800002dc502bc502bc5321c001fc001fc0000c0000c002dc502bc502bc531dc001cc001ac001ac0000c002dc502bc502ac5000c0000c0000c0031c5000c0032c5000c0000c0000c0000c0000c0000c0000c00
01280000071350e1351313515135171351a1351f13500100071350e1351313515135171351a1351f1350010002135091350e1351013512135151351a1350010002135091350e1351013512135151351a13500100
01280000071350e1351313515135171351a1351f13500100071350e1351313515135161351a1351f1350010002135091350e1351013512135151351a1350010002135091350e1351013512135151351a13500100
01280000041350b135101351213513135171351c13500100071350e1351313515135161351a1351f13500100061350d135121351313515135191351e135001000b1351213517135191351a1351e1352313500100
011c00001db5019b5016b501db5019b5016b501db5019b5016b501db5019b5016b501cb5018b5015b501cb5018b5015b501cb5018b5015b501cb5018b5015b501db5019b5016b501db5019b5016b501db5019b50
011c000016b501db5019b5016b5020b501cb5019b5020b501cb5019b5020b501cb5019b5020b501cb5019b501db5019b5016b501db5019b5016b501db5019b5016b501db5019b5016b501cb5018b5015b501cb50
011c000018b5015b501cb5018b5015b501cb5018b5015b501db5019b5016b501db5019b5016b501db5019b5016b501db5019b5016b5020b501cb5019b5020b501cb5019b5020b501cb5019b5020b501cb5019b50
010a00000e1630a1240a1400a1400e1630a1240a1400a1400e1630a1240a1400a1400e1630a1240a1400a1400e1630912409140091400e1630912409140091400e1630912409140091400e163091240914009140
010a00000e1630a1240a1400a1400e1630a1240a1400a1400e1630a1240a1400a1400e1630a1240a1400a1400e1630d1240d1400d1400e1630d1240d1400d1400e1630d1240d1400d1400e1630d1240d1400d140
010a00000e1630712407140071400e1630712407140071400e1630712407140071400e1630712407140071400e1630612406140061400e1630612406140061400e1630612406140061400e163061240614006140
0114000437d0000d0016d4000d0000d003cd0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000d0000000
010a00001d0031901419020190201d0031901419020190201d0031901419020190201d0031901419020190201d0031801418020180201d0031801418020180201d0031801418020180201d003180141802018020
010a00001d0031901419020190201d0031901419020190201d0031901419020190201d003190141902019020210031c0141c0201c020210031c0141c0201c020210031c0141c0201c020210031c0141c0201c020
010a000025e1025e1025e0025e000c5000c50025e1025e1024e002e5003150025e0025e1025e1024e000c50028e1028e100c50025e000c5000c50028e1028e0028e0028e1028e0028e0028e1028e1028e000c500
010a000025e1025e1025e0025e000c5000c50025e1025e1024e002e5003150025e0025e1025e1024e000c50024e1024e100850021e00085000850024e1024e0024e0024e1024e0024e0024e1024e1024e0008500
010a00001f0031701417020170201b0031701417020170201b0031701417020170201b0031701417020170201b0031601416020160201b0031601416020160201b0031601416020160201b003160141602016020
010a000023f1023f1023f0023f000af000af0023f1023f1022f002cf002ff0023f0023f1023f1022f000af0022f1022f100af0023f000af000af0022f1022f0026f0022f100af0026f0022f1022f1026f000af00
010a000016d000000000d0016d0016d4300d0016d0016d0000d0016d0000d0016d0016d4300d0016d0016d0016d000000000d0016d0016d4300d0016d0016d0000d0016d4016d0000d0016d4016d0016d0016d43
010800002f05531055320550000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005
0114001025a5024a5020a501da50000000000025a5024a501fa501ca50000001ca5024a5023a501fa501ca5000000000000000000000000000000000000000000000000000000000000000000000000000000000
0114001025a5024a5020a501da50000000000025a5024a5020a501ca50000001ca5028a5027a5023a5020a5000000000000000000000000000000000000000000000000000000000000000000000000000000000
0114001025a5024a5020a501da50000000000025a5024a5020a501ca50000001ca5028a5027a5020a5019a5000000000000000000000000000000000000000000000000000000000000000000000000000000000
010a000013a6013a600000000000000000000023a6023a6017a6017a600da600da601aa601aa601ca601ca601da601da600000000000000000000019a6019a60000000000012a6012a6000000000000000000000
010a000013a6013a600000000000000000000017a6017a6017a0017a000da600da6026a6026a6017a6017a6016a6016a60000000aa600aa600000016a6016a600000016a6016a6012a0016a6016a600000000000
010a000013a6013a600000000000000000000017a6017a6023a6023a6019a6019a600ea600ea601ca601ca601da601da600000000000000000000022a6022a60000000000012a0012a0000000000000000000000
010a00001fa601fa600000000000000000000017a0017a0023a0023a0019a0019a000ea000ea001ca001ca001da001da000000000000000000000022a0022a00000000000012a0012a0000000000000000000000
010a00000e1530712407140071400e1530712407140071400e1530712407140071400e1530712407140071400e1530612406140061400e1530612406140061400e1530612406140061400e153081240814008140
010a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016d40000000000000000
010a00001f0031701417020170201b0031701417020170201b0031701417020170201b0031701417020170201b0031601416020160201b0031601416020160201b0031601416020160201b003180141802018020
__music__
01 080c4344
00 090d4344
00 0a0e4344
02 0b0e4344
01 0f424344
00 10424344
02 11424344
01 12421655
00 13421766
00 12421615
00 13421715
00 121e1615
00 131f1715
00 121e1615
00 13201715
00 12421615
00 1342171c
00 121e1615
00 131f1715
00 121e1615
00 13201715
00 12421615
00 14421a15
00 14211a15
00 14221a15
00 14231a15
02 2524271c