-
Notifications
You must be signed in to change notification settings - Fork 0
/
rhythmfrog.p8
730 lines (626 loc) · 35.9 KB
/
rhythmfrog.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
pico-8 cartridge // http://www.pico-8.com
version 33
__lua__
-- rhythm frog
-- by 7th beat games
-- enable = enables devkit mode with mouse and keyboard
-- btn_emu = left,right,middle mouse buttons -> btn(X),btnヤま◆(O),btn(6)
-- ptr_lock = enable pointer lock
function mkb_init(enable, btn_emu, ptr_lock)
-- pass args as bitfield into hardware register
poke(0x5f2d,(enable and 1 or 0)
|(btn_emu and 2 or 0)
|(ptr_lock and 4 or 0))
end
function _init()
mkb_init(true,true,false) -- enabled, with button emulation, locked
music(0)
resetgame()
end
function resetgame()
-- reset vars
camx = 40
camy = 0
tjump = -1
frogx = 0
frogy = 0
deathx = 0
deathy = 0
bholdstart = 0 --timestamp (in beats) of when the beat started to hold. 0 if not holding
cbhold = 0 -- clamped bhold
hjump = 0
currpad = 0
lilypadsx = {}
flyx = 0
prevflyx = 0
gameover = false
intro = true
won = false
score = 0
rainx = {}
rainy = {}
raint = {}
rainspd = {}
tperfect = 0
combo = 0
combobreak = false
lastpad = 1
distance = 0
intro = true
for i=1, #level do
type = ord(level, i) - 48
distnumber = ord(level_distances, i) - 48
--0 means half beat, 1 means full beat, 2 means 1.5 beats
--convert to those values:
if distnumber == 0 then distbeat = 0.5 end
if distnumber == 1 then distbeat = 1 end
if distnumber == 2 then distbeat = 1.5 end --1.5 not used for v1
lilypadsx[i] = distance
distance += lilyspacing * distbeat
end
flyx = lilypadsx[2]
rainamount = 50
for i = 0, rainamount - 1 do
rainx[i] = rnd(scr_side * 1.5) - scr_side * 0.25
rainy[i] = rnd(scr_side * 1.5) - scr_side * 0.25
raint[i] = rnd(10)
rainspd[i] = 15 + rnd(30)
end
end
function _update60()
if btnp(5) and intro then
intro = false
end
-- calculating currentbeat-----
--currentbeatl is temporary var, looping beatnumber
--currentbeatl loops between 0 to 6, so need to convert to proper monotonic fn
oldcurrentbeat = currentbeatl
currentbeatl = stat(26) / ticksperbeat
if (currentbeatl < oldcurrentbeat) then beatloops+=1 end
currentbeat = currentbeatl + beatloops * beatsperpattern
if tjump < 0 and not intro and not won then
if btn(5) and bholdstart <= 0 then
bholdstart = b()
end
if not btn(5) and bholdstart > 0 then
--hjump = b() - bhold
cbhold = min(b() - bholdstart, maxbhold)
--snap if close enough, values found by playtesting
--magic formula from some algebra
hjump = const50/const80 * cbhold * lilyspacing
tjump = 0
bholdstart = 0
end
end
-- check if we are above pad
if not gameover then
currpad = 0
for i=1, #level do
type = ord(level, i) - 48
w = (type + 2) * 8
d = abs(lilypadsx[i] - frogx)
if d < w / 2 then
currpad = i
distcurrpad = d
break
end
end
end
if tjump >= 0 then
tjump += 1/60 * const50 / hjump
-- parabola
x = tjump
--fx is parabola 0 to 1, height -1
fx = -4*(x - x*x);
frogy = fx * hjump
if not gameover then
frogy = min(0, frogy)
end
frogx += 1/60 * const80
if tjump > 1 and not gameover then
if currpad ~= 0 then
tjump = -1 -- landed on floor
if currpad > lastpad then
score += 1
lastpad = currpad
if distcurrpad < 5 then -- perfect hit
tperfect = 0.3
score += 1
combo += 1
if combo > 1 then
score += 1
sfx(31,3)
else
sfx(30,3)
end
else
combo = 0
combobreak = true
end
if currpad == #level - 1 then
won = true
end
else -- landed on same floor
combo = 0
combobreak = true
end
else
gameover = true
sfx(32,3)
deathx = frogx
deathy = frogy
end
end
end
if tjump == -1 and currpad ~= 0 and not gameover then
frogx = lerp(frogx, lilypadsx[currpad], 0.3)
end
-- bobbing
bob = currentbeat % 3 < 0.5
-- fly
if currpad > 0 then
prevflyx = flyx
flyx = lerp(flyx, lilypadsx[currpad + 1], 0.08)
x = ilerp(lilypadsx[currpad], lilypadsx[currpad + 1], flyx)
flyy = -4*(x - x*x) * 10
end
-- restart
if (gameover or won) and btnp(5) then
resetgame()
end
-- camera
if not gameover then
camx = frogx + 40
end
camy = -10
if bob == true then
camy += 1
end
-- rain
for i=0,#rainx do
raint[i] = (raint[i] + 1/60) % 1
end
-- score and checkpoint
--score = max(score, currpad - 1)
highscore = max(score, highscore)
---- checkpoint code shelved
--if gameover and score >= checkpoint then
-- score = checkpoint
-- gameover = false
-- frogx = lilypadsx[checkpoint + 1]
-- frogy = 0
--end
end
function _draw()
cls(1)
-- debugging
------------
camera(-1,-1)
color(7)
if debug then
print("hjump: " .. hjump)
print("cbhold: " .. cbhold)
print("t(): " .. t())
print("beat: " .. currentbeat)
elseif intro then
print("high score: " .. highscore)
else
c = 7
if tperfect > 0 then
if combo > 1 then c = 10
elseif combo > 0 then c = 11 end
end
print("score: " .. score, c)
end
-- gameplay
-----------
camera(
-scr_side / 2 + camx,
-scr_side / 2 + camy)
-- splash
if gameover then
splash = 009
beatbool = currentbeat % 2 < 1 --bob to the beat
if beatbool then splash = 025 end
spr(splash, deathx - 5, deathy - 4, 2, 1)
phonesy = 0
if beatbool then phonesy = 1 end
pal(1,0)
spr(11, deathx - 2, deathy - 4 + phonesy, 1, 1)
pal()
end
-- lilypad
distance = 0
for i=1, #level do
type = ord(level, i) - 48
distance = lilypadsx[i]
lit = currpad == i and tjump == -1
lilypad(distance, 0, type, lit)
if debug then print(i - 1, distance - 2, 10, 5) end
end
-- checkpoint
-- spr(045, lilypadsx[checkpoint + 1] - 8, -17,2,2)
-- frog
frogspr = 005
if won then
frogspr = 013
elseif bholdstart > 0 then
frogspr = 007
elseif bob then
frogspr = 039
end
clip(0, 0, scr_side, scr_side / 2 + 1 - camy)
pal(1, 0)
spr(frogspr,
frogx - 6,
frogy - 15, 2, 2)
pal()
clip()
-- perfect note
if tperfect > 0 then
tperfect -= 1/60
pal()
notespr = 000
if combo > 1 then notespr = 016 end
if tperfect % 0.16 < 0.08 then
pal(7,11)
elseif combo > 1 then
pal(7,10)
end
spr(notespr, frogx - 3, frogy - 28 + tperfect * 8)
pal()
end
-- fly
sprfly = 042
if abs(prevflyx - flyx) > 0.1 then
if t() % 0.1 < 0.05 then
sprfly = 041
end
end
pal(1, 0)
spr(sprfly, flyx - 5, flyy -7)
pal()
-- cake
spr(027, lilypadsx[#level] - 9, -13,2,2)
camera(0,0)
-- rain
for i = 0, #rainx do
speed = rainspd[i]
rt = raint[i]
dx = 5 * speed
dy = -10 * speed
rx = lerp(rainx[i] + dx, rainx[i], rt)
ry = lerp(rainy[i] + dy, rainy[i], rt)
hit = ry > rainy[i] - 10
clip(0, 0, scr_side, rainy[i])
line(rx,ry,rx-5,ry+10, 7)
clip()
if hit then
spr(059, rainx[i] - 1, rainy[i] - 1)
end
end
clip()
-- messages
if intro then
-- shadow
print("rhythm frog", 43, scr_side / 2 - 30, 0)
-- front
print("rhythm frog", 43, scr_side / 2 - 31, 11)
print("hold ❎ for one beat!", 24, scr_side - 10, 7)
end
if gameover then
print("game over! ❎ to try again", 12, scr_side - 10)
end
if won then
c = flr(t() * 4 % 3) + 8
print("you won! happy birthday kyle!!", 6, scr_side / 2 - 30, c)
print("we wish you the best!", 22, scr_side / 2 - 22, 7)
if not combobreak then
print("perfect run, congrats!", 22, scr_side / 2 + 28, c)
end
print("❎ to restart", 42, scr_side - 10, 7)
end
--rectfill(frog, -5, 10, 10, 10)
end
-- draws a lilypad
function lilypad(x,y,t,lit) -- t: type
sprindex = 037 sx = 2 sy = 1
if t == 1 then
sprindex = 033 sx = 3 sy = 2
elseif t == 2 then
sprindex = 001 sx = 4 sy = 2
end
if lit then pal(3,10) end
spr(sprindex,
x - sx * 8 / 2,
y - sy * 8 / 2,
sx, sy)
pal()
end
-->8
-- constants
--level = "2222"
--level_distances = "1111"
level = "22222221212120011222210012222212100000000222"
level_distances = "11111111111110011111100001111111100000000111"
debug = false
totaltjump = 1 --0 means half beat
scr_side = 128
maxbhold = 1.7 --so cant jump over a whole lilypad
minjump = 4
maxjump = 30
checkpoint = 20
ticksperbeat = 64
beatsperpattern = 6
lilyspacing = 13*4 -- lilypads spacing for 1 beat
offset = -10
const50 = 50 --safekeeping to avoid accidental change
const80 = 80 --used both in jump calc and making sure 1 beat hold = lilyspacing
-- variables
camx = 40
camy = 0
tjump = -1
frogx = 0
frogy = 0
deathx = 0
deathy = 0
bholdstart = 0 --timestamp (in beats) of when the beat started to hold. 0 if not holding
cbhold = 0 -- clamped bhold
hjump = 0
currpad = 0
distcurrpad = 0
lilypadsx = {}
flyx = 0
prevflyx = 0
gameover = false
won = false
intro = true
score = 0
highscore = 0
rainx = {}
rainy = {}
raint = {}
rainspd = {}
tperfect = 0
combo = 0
lastpad = 1
combobreak = false
--conductor stuff:
currentbeat = 0
currentbeatl = 0
oldcurrentbeat = 0
bob = false
beatloops = 0
-- helpers
function lerp(a,b,t)
return a + (b-a) * t
end
function ilerp(a,b,t)
return (t-a)/(b-a)
end
function b()
return currentbeat
end
__gfx__
00007770000000000000000000000000000000000000000011000000000000000000000000700000000007000000111000000000000000700000000000000000
00007777000000000033333333333300000000000000000110100000000000000000000007007000000000700001101000000000000000080000000000000000
0000707700000033333333333333333333000000000000110bbb0000000000001100000070070077700070070011000000000000000000087100000000000000
000070070003333333333333333333333333300000000110bb770000000000011010000070000700007007070010000000000000000000088810000000000000
07777000003333333333333333333333333333000000010bbb71b000000000110bbb000070700070070007070111000000000000000000178bbb000000000000
7777700003333333333333333333333333333330000001b77bbbb00000000110bbb100000007000000007007012100000000000000000118bbb1000000000000
7777700033333333333333333333333330000000000011171bbbb0000000010bbb1bb000070000000000007001110000000000000000010bbb1bb00000000000
0777000033333333333333333333300000000000000b121bbbb8b000000001bb1bbbb00000770000000077000000000000000000000001bb1bbbb00000000000
000077773333333333333333333333333333333300bb111bbbbb0000000b1111bbbbb00000070000000070000000000000000000000b1111bbbb800000000000
00777777033333333333333333333333333333300bbbb3bbbbb0000000bb121bbbbbb000007007000070070000000a000a00000000bb121bbbb8800000000000
00777007003333333333333333333333333333000bbbbb33330000000bbb111bbbbb000007007007000700700000080008000a000bbb111bbb88000000000000
00700007000333333333333333333333333330000bbbbbbbbbb000000bbbb3bbbbb000000700707077070070000a0800080008000bbbb3bbbbb0000000000000
00700007000000333333333333333333330000000bbbbbbbb77000000bbbbb333300000007007007000700700009787a787a08000bbbbb333300000000000000
00700007000000000033333333333300000000000bbbbbbbb70000000bbbbbbbb7700000007007000070007007797879787978700bbbbbbbb770000000000000
777007770000000000000000000000000000000000bbb0bbb000000000bbbbbbb7000000000700000000070077797779777978770bbbbbbbb700000000000000
7770077700000000000000000000000000000000000000000000000000000000000000000000000000077000777977797779777700bbb0bbb000000000000000
00000000000000000000000000000000000000000000333333330000000000000000000000000000000000007777777977777777006655775577557700000000
0000000000000000000000000000000000000000033333333333333000000000110000000000000000000000f77777777777777f006655775577557700000000
0000000000000000000000000000000000000000333333333333333300000001101000000770000000000000afff77777777fffa006677557755775500000000
00000000000000333333333333000000000000003333333333333300000000110bbb00000777000000000000fcafff8ffcfff8ff006677557755775500000000
0000000000033333333333333333300000000000333333333330000000000110bb7700000011100007771000f8ffffffffafffcf006655775577557700000000
000000000333333333333333333333300000000033333333333333330000010bbb71b0000011110007711100fffffcf8fffffaff006655775577557700000000
00000000333333333333333333333333000000000333333333333330000001b77bbbb00000000000000000000fc8faffcff8fff0006677557755775500000000
00000000333333333333333333330000000000000000333333330000000b11171bbbb0000000000000000000000ffffffffff000006677557755775500000000
0000000033333333333333333000000000000000000000000000000000bb121bbbb8b00006575750000000000770000000000000006600000000000000000000
000000003333333333333333333333330000000000000000000000000bbb111bbbbb000006757570000000007007000000000000006600000000000000000000
000000000333333333333333333333300000000000000000000000000bbbb3bbbbb0000006575750000000000770000000000000006600000000000000000000
000000000003333333333333333330000000000000000000000000000bbbbb333300000006757570000000000000000000000000006600000000000000000000
000000000000003333333333330000000000000000000000000000000bbbbbbbb770000006000000000000000000000000000000006600000000000000000000
000000000000000000000000000000000000000000000000000000000bbbbbbbb700000006000000000000000000000000000000006600000000000000000000
0000000000000000000000000000000000000000000000000000000000bbb0bbb000000006000000000000000000000000000000006600000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000006600000000000000000000
__label__
11111111111111111111111111111111111111111117111111111111117111111111111111111111117111111111111111111111111111111111111111111111
17171777117717171111117711771177177717771117111117771111171111111111111111111111171111111111111111111111111111111111111111111111
17171171171117171111171117111717171717111171111117171111171111111111111111111111111111111111111111111111111111111111111111111111
17771171171117771111177717111717177117711111111117171111711111111111111111111111111111111111111111111111111111111111111111111111
17171171171717171111111717111717171717111171111117171111711111111111111111111111111111111111111111111111111111111111111111111111
17171777177717171111177111771771171717771111111117771117111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111171111111111111171111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111171111111111111711111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111711111111111111711111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111711111111111117111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111171111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111117bbb1b1b1b1b1bbb1b1b1bbb11111bbb1bbb11bb11bb111111111111111111111111111111111111111111
1111111111111111111111111111111111111111171b0b1b1b1b1b10b01b1b1bbb11111b001b0b1b0b1b00111111111111111111111111111111111111111111
1111111111111111111111111111111111111111171bb01bbb1bbb11b11bbb1b0b11111bb11bb01b1b1b11111111111111111111111111111111111111111111
1111111111111111111111111111111111111111711b0b1b0b100b11b11b0b1b1b11111b011b0b1b1b1b1b111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111b1b1b1b1bbb11b11b1b1b1b11111b111b1b1bb01bbb111111111111111111111111111111111111111111
11111111111111111111111111111111111111111110101010100011011010101011111011101010011000111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111117111111111111111111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111
11111111111111111171111111111111111111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111
11111111111111111171111111111111111111111111111111111111111111111111111111111111117111111111111111111111111111111111111111111111
11111111111111111711111111111111111111111111111111111111111111111111111111111111117111111111111111111111111111111111111111111111
11111111111111111711111111111111111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111
11111111111111117111111111111111111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111
11111111111111117111111111111111111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111
11111111111111171111111111111111111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111117111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111117111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111110010111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111001bbb11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111001bb7711111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111
1111111111111111111111101bbb70b1111111111111111111111111111111111111111111111111171111111111111111111111111111111111111111111111
111111111111111111111110b77bbbb1111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111
111111111111111111111100070bbbb1111111111111111111111111111111111111111111111111711111111111111111111111111111111111111111111111
111111111111111111111b020bbbb8b1111111111111111111111111111111111111111111111117111111111111111111111111111111111111111111111111
111111111111111111aabb000bbbbb11111111111111111111111111111111111111113333333337331111111111111111111111111111111111111111333333
11111111111111aaaaabbbb3bbbbbaaaaa1111111111111111111111111111111133333333333373333333111111111111111111111111111111113333333333
11111111111aaaaaaaabbbbb3333aaaaaaaaa1111111111111111111111111133333333333333373333333333111111111111111111111111113333333333333
1111111111aaaaaaaaabbbbbbbbbbaaaaaaaaa111111111111111111111111333333333333333733333333333311111111111111111111111133333333333333
111111111aaaaaaaaaabbbbbbbb77aaaaaaaaaa11111111111111111111113333333333377703733333333333331111111111111111111111333333333333333
11111111aaaaaaaaaaabbbbbbbb7aaaaa11111111171111111111111111133333333333377007333333331111111111111111111111111113333333333333333
11111111aaaaaaaaaaaabbbabbbaa111111111111171111111111111111133333333333333333333311111111111111111111111111111113333333333333333
11111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1711111111111111111133333333333333333333333333333333111111111111111111113333333333333333
111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa11711111111111111111113333333333333333333333333333331111111111111111111111333333333333333
1111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaa117111111111111111111111333333333333333333333333333311111111111111111111111133333333333333
11111111111aaaaaaaaaaaaaaaaaaaaaaaaaa1117111111111111111111111133333333333333333333333333111111111111111111111111113333333333333
11111111111111aaaaaaaaaaaaaaaaaaaa1111171111111111111111111111111133333333333333333333111111111111111111111111111111113333333333
111111111111111111aaaaaaaaaaaa11111111171111111111111111111111111111113333333333331111111111111111111111111111111111111111333333
11111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111117111111111171111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111117111111111711111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171111111111711111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171111111117111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111711111111117111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111711111111171111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111117111111111171111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111117111111111711111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171111111111711111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171111111117111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111711111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111171711771711177111111177777111111777117717771111117717711777111117771777177717771171111111111111111111111
11111111111111111111111171717171711171711111771717711111711171717171111171717171711111117171711171711711171111111111111111111111
11111111111111111111111177717171711171711111777177711111771171717711111171717171771111117711771177711711171111111111111111111111
11111111111111111111111171717171711171711111771717711111711171717171111171717171711111117171711171711711111111111111111111111111
11111111111111111111111171717711777177711111177777111111711177117171111177117171777111117771777171711711171111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
__gff__
0000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
001018000c0300c0410c0411303017057130371704713037170271302717017130170505005041090410c04110052100421004210032100221001200000100120000000000000000000000000000000000000000
011018000e0500e0411104115031180371503718037150371702217012170120000007050070410b0410e05113052130521304213032130221301200000000000000000000000000000000000000000000000000
01101800280142802128021280212802128021280222802228022280222402224022210222102221022210221f0221f0221f0221f0221f0221f0251f0151f0152302223022230222302223022230222302223022
011018002801428021280212802128022280222802228022280222802224022240222b0222b0222b0222b02226022260222602226022260222602226012260122302223022230222302223022230222302223022
011018000c06318613096230960318622186251862518613096130000009613000000c06300000096130c00018622186151861518613000001861318613000000000000000000000000000000000000000000000
011018000c06300600096230960318622186251862518613096130000009613000000c06300000096130c000186221861518615186130c063000000c063000000000000000000000000000000000000000000000
011018002102021021210222102224022240222402224022280222802228022280222602226022260222602226022260222602226022260252602526025260222302223022230222302223022230222302223022
0108001830613276033060027600306002a6003060027600276002760030600256002c6002c600306002a60030600006002760027600006002760030600286002860328603286032860328603276032a60327603
0108001830613276033060327603306132a6033061327603276032760330613256032c6032c603306002a60330613006032760327603006002760330600286032860328603286032860328603276032a60327603
01101800210202102121022210221f0221f0221f0221f022210222102221022210222302223022230222302224022240222402224022260252602526025260222302223022230222302223022230222302223022
011018000900009000090000900017000130001700013000170001300017000130000500005000090000c00010000100001000010000100001000000000100000000000000000000000000000000000000000000
011018002102121021240202402128022280222d0222d0222f0222f0222b0222b02226022260222b0222b0222f0222f022300223002230022300222f0222f0222f02223022000000000000000000000000000000
0110180028020280212b0202b0213002230022320223202230022300222b0222b0222d0222d0222b0222b02228022280222602226022260222602228022280222f02223022000000000000000000000000000000
01200c002402224022240222402528000280002602426022260222602228000280002d0002d0002b0002b00028000280002600026000260002600028000280002f00023000000000000000000000000000000000
01200c002401424011240212402124022240222402224025260002600028000280002d0002d0002b0002b00028000280002600026000260002600028000280002f00023000000000000000000000000000000000
011018000c06318613096230960318622186251862518613096130000009613000000c06300000096130c00018622186151861518613000001861318613000000000000000000000000000000000000000000000
01101800090300904015030150300903009040150401503009030090401503015030070300704013040130300703007040130401303010022100220e0200e0200000000000000000000000000000000000000000
011018000c0300c04018030180300c0300c0400b0300b04017030170300b0300b0400903009040150301503009030090400703007040130301303007030070400000000000000000000000000000000000000000
011018000505005041090410c041100521004210042100321002210012000001001207050070410b0410e041130370e037130370e037130270e027130170e01528700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
011018000c0631861318f7318f731862218f73186251861318f730000009613000000c0631861318f7318f731862218f73186151861318f731861318613000000000000000000000000000000000000000000000
0108001830613276033060327600306002a6003060027600276002760030600256002760327603006002760330600286032860328603286032860328603276032a60327603000000000000000000000000000000
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
0110180027700277002470027700277002a7002a70027700277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
3106210021525265350650008500095000b5000c5000e500105001150012500135001550017500185001a5001e500205002250023500245002550026500225001e5001c5001a5001950018500175001550000000
3105210021525265352d5352c700095000b5000c5000e500105001150012500135001550017500185001a5001e500205002250023500245002550026500225001e5001c5001a5001950018500175001550000000
011018000c6510c6310c6320c6200c6220c6100c6110c615277002770025700257002c7002c7002c7002a7002a7002770027700277002770029700287002870028700287002870028700277002a7002770025700
2105210021025260322d0323903239032390223901239012100001100012000130001500017000180001a0001e000200002200023000240002500026000220001e0001c0001a0001900018000170001500000000
3905210028040280402d0402d0302d0202d01012000130001500017000180001a0001e000200002200023000240002500026000220001e0001c0001a000190001800017000150000000000000000000000000000
21052100180251c0321f03210032240322402224012240122402513032300323c0323c0323c0223c0123c01223000280002f0003b0003b0003b0003b0003b0001e0001c0001a0001900018000170001500000000
__music__
00 00044244
00 00054244
00 00044244
01 01044244
00 00040244
00 00050344
00 00040244
00 01040644
00 00140247
00 00140348
00 00140247
00 01140647
00 00140247
00 00140347
00 00140247
00 01140947
00 10140b47
00 11140c47
00 12140d47
02 00040e44