aboutsummaryrefslogtreecommitdiff
path: root/lib/stsound
diff options
context:
space:
mode:
authortheuni <theuni-nospam-@xbmc.org>2011-01-24 16:05:21 -0500
committertheuni <theuni-nospam-@xbmc.org>2011-01-24 16:05:21 -0500
commitc51b1189e3d5353e842991f5859ddcea0f73e426 (patch)
treeef2cb8a6184699aa614f3655dca4ce661cdc108e /lib/stsound
parentbe61ebdc9e897fe40c6f371111724de79ddee8d5 (diff)
Merged cptspiff's code-reshuffle branch.
Squashed commit due to build breakage during code-reshuffle history. Conflicts: xbmc/Util.cpp xbmc/cdrip/CDDARipper.cpp xbmc/filesystem/Directory.cpp xbmc/filesystem/File.cpp
Diffstat (limited to 'lib/stsound')
-rw-r--r--lib/stsound/StSoundLibrary/Depacker.cpp92
-rw-r--r--lib/stsound/StSoundLibrary/Depacker.h37
-rw-r--r--lib/stsound/StSoundLibrary/LZH/lzh.h86
-rw-r--r--lib/stsound/StSoundLibrary/LZH/lzhlib.txt132
-rw-r--r--lib/stsound/StSoundLibrary/LZH/lzhxlib.c440
-rw-r--r--lib/stsound/StSoundLibrary/Makefile.in30
-rw-r--r--lib/stsound/StSoundLibrary/StSoundLibrary.h71
-rw-r--r--lib/stsound/StSoundLibrary/StSoundLibrary.vcproj407
-rw-r--r--lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj215
-rw-r--r--lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj.filters71
-rw-r--r--lib/stsound/StSoundLibrary/XBMCYM.cpp96
-rw-r--r--lib/stsound/StSoundLibrary/Ym2149Ex.cpp603
-rw-r--r--lib/stsound/StSoundLibrary/Ym2149Ex.h160
-rw-r--r--lib/stsound/StSoundLibrary/YmMusic.cpp731
-rw-r--r--lib/stsound/StSoundLibrary/YmMusic.h261
-rw-r--r--lib/stsound/StSoundLibrary/YmTypes.h91
-rw-r--r--lib/stsound/StSoundLibrary/YmUserInterface.cpp132
-rw-r--r--lib/stsound/StSoundLibrary/Ymload.cpp690
-rw-r--r--lib/stsound/StSoundLibrary/Ymload.h62
-rw-r--r--lib/stsound/StSoundLibrary/digidrum.cpp2584
-rw-r--r--lib/stsound/StSoundLibrary/digidrum.h39
-rw-r--r--lib/stsound/license.txt341
-rw-r--r--lib/stsound/readme.html151
-rw-r--r--lib/stsound/revision.txt20
24 files changed, 7542 insertions, 0 deletions
diff --git a/lib/stsound/StSoundLibrary/Depacker.cpp b/lib/stsound/StSoundLibrary/Depacker.cpp
new file mode 100644
index 0000000000..bcd9e33ab3
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/Depacker.cpp
@@ -0,0 +1,92 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ LzhXLib wrapper.
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#include "LZH/lzh.h"
+#include "YmMusic.h"
+#include "Depacker.h"
+#include <string.h>
+
+
+static const ymu8 * s_pSrc = 0;
+static ymu8 * s_pDst = 0;
+static ymint s_depackedSize = 0;
+static ymint s_depackedPos = 0;
+
+
+static ymint ReadCallback(void *pBuffer,ymint size)
+{
+ memcpy(pBuffer,s_pSrc,size);
+ s_pSrc += size;
+ return size;
+}
+
+static ymint WriteCallback(void *pBuffer,ymint size)
+{
+ ymint safeSize = (s_depackedPos + size <= s_depackedSize) ? size : s_depackedSize - s_depackedPos;
+
+ if (safeSize > 0)
+ {
+ memcpy(s_pDst,pBuffer,safeSize);
+ s_depackedPos += safeSize;
+ s_pDst += safeSize;
+ return safeSize;
+ }
+ else
+ return -1;
+}
+
+static void * MallocCallback(unsigned int size)
+{
+ ymu8 *p = new ymu8[size];
+ return (void*)p;
+}
+
+static void FreeCallback(void *p)
+{
+ if (p)
+ {
+ ymu8 *cp = (ymu8 *)p;
+ delete [] cp;
+ }
+}
+
+ymbool LzhDepackBlock(const ymu8 *pSrc,ymu8 *pDst,ymint depackedSize)
+{
+
+ s_pSrc = pSrc;
+ s_pDst = pDst;
+ s_depackedPos = 0;
+ s_depackedSize = depackedSize;
+
+ ymint error = lzh_melt(ReadCallback,WriteCallback,MallocCallback,FreeCallback,s_depackedSize);
+
+ return ((0 == error) ? YMTRUE : YMFALSE);
+}
+
diff --git a/lib/stsound/StSoundLibrary/Depacker.h b/lib/stsound/StSoundLibrary/Depacker.h
new file mode 100644
index 0000000000..66e99b8446
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/Depacker.h
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ LzhXLib wrapper.
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#ifndef __DEPACKER__
+#define __DEPACKER__
+
+extern ymbool LzhDepackBlock(const ymu8 *pSrc,ymu8 *pDst,ymint depackedSize);
+
+#endif
+
diff --git a/lib/stsound/StSoundLibrary/LZH/lzh.h b/lib/stsound/StSoundLibrary/LZH/lzh.h
new file mode 100644
index 0000000000..009266d205
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/LZH/lzh.h
@@ -0,0 +1,86 @@
+/**
+ *
+ * LZHXLib.C - Decompression module
+ *
+ * Compression Library (LZH) from Haruhiko Okumura's "ar".
+ *
+ * Copyright(c) 1996 Kerwin F. Medina
+ * Copyright(c) 1991 Haruhiko Okumura
+ *
+ * In MSDOS, this MUST be compiled using compact, large,
+ * or huge memory models
+ *
+ * To test, compile as below to create a stand-alone decompressor (will
+ * decompress standard input to standard output):
+ * bcc -O2 -mc -D__TEST__ lzhxlib.c
+ * or
+ * gcc -O2 -D__TEST__ lzhxlib.c
+ * then run as: lzhxlib <infile >outfile
+ *
+ * To use as a library for your application, __TEST__ must
+ * not be defined.
+ *
+ */
+
+
+#ifndef LZH_H
+#define LZH_H
+
+#ifndef __TURBOC__
+#define far
+#endif
+
+typedef unsigned char uchar; /* 8 bits or more */
+typedef unsigned int uint; /* 16 bits or more */
+typedef unsigned short ushort; /* 16 bits or more */
+typedef unsigned long ulong; /* 32 bits or more */
+
+#ifndef CHAR_BIT
+ #define CHAR_BIT 8
+#endif
+
+#ifndef UCHAR_MAX
+ #define UCHAR_MAX 255
+#endif
+
+#define BITBUFTYPE ushort
+
+#define BITBUFSIZ (CHAR_BIT * sizeof (BITBUFTYPE))
+#define DICBIT 13 /* 12(-lh4-) or 13(-lh5-) */
+#define DICSIZ (1U << DICBIT)
+#define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */
+#define THRESHOLD 3 /* choose optimal value */
+#define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD) /* alphabet = {0, 1, 2, ..., NC - 1} */
+#define CBIT 9 /* $\lfloor \log_2 NC \rfloor + 1$ */
+#define CODE_BIT 16 /* codeword length */
+
+#define MAX_HASH_VAL (3 * DICSIZ + (DICSIZ / 512 + 1) * UCHAR_MAX)
+
+typedef void far * void_far_pointer;
+typedef int (*type_fnc_read) (void far *data, int n);
+typedef int (*type_fnc_write) (void far *data, int n);
+typedef void_far_pointer (*type_fnc_malloc) (unsigned n);
+typedef void (*type_fnc_free) (void far *p);
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+int lzh_freeze (type_fnc_read pfnc_read,
+ type_fnc_write pfnc_write,
+ type_fnc_malloc pfnc_malloc,
+ type_fnc_free pfnc_free);
+
+int lzh_melt (type_fnc_read pfnc_read,
+ type_fnc_write pfnc_write,
+ type_fnc_malloc pfnc_malloc,
+ type_fnc_free pfnc_free,
+ ulong origsize);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* ifndef LZH_H */
diff --git a/lib/stsound/StSoundLibrary/LZH/lzhlib.txt b/lib/stsound/StSoundLibrary/LZH/lzhlib.txt
new file mode 100644
index 0000000000..2de8554792
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/LZH/lzhlib.txt
@@ -0,0 +1,132 @@
+LZHLIB.TXT
+
+Copyright(c) 1996 Kerwin F. Medina
+Kerwin F. Medina
+kerwin@infoserve.net
+kerwin@digi.co.jp
+
+I took the source of Haruhiko Okumura's "ar" and extracted only the
+necessary codes to create a compression library so an application can
+make use of compression through a function call and without having to
+spawn an external compression program.
+
+The library has only two API functions: "lzh_freeze" (to compress) and
+"lzh_melt" (to decompress). In both cases, the caller only has to
+provide the I/O functions and memory allocation functions. The
+following is an example of a minimal compressor and decompressor.
+
+ Sample Compressor:
+
+ #ifdef __TURBOC__
+ #include <io.h>
+ #include <fcntl.h>
+ #else
+ #include <stdio.h>
+ #endif
+ #include <stdlib.h>
+
+ /* My I/O functions */
+ int read0 (void far *p, int n) {return read (0, p, n);}
+ int write1 (void far *p, int n) {return write (1, p, n);}
+
+ /* My Memory functions */
+ void *mymalloc (unsigned n) {return malloc (n);}
+ void myfree (void far *p) {free (p);}
+
+ void main (void)
+ {
+ long n;
+ #ifdef __TURBOC__
+ setmode (0, O_BINARY); setmode (1, O_BINARY);
+ #endif
+ /* Get the length of the input file */
+ n = lseek (0, 0, 2);
+ lseek (0, 0, 0);
+
+ /* Write this length to the output file */
+ write (1, &n, sizeof (n));
+
+ /* Now, Call the compression function */
+ lzh_freeze (read0, write1, mymalloc, myfree);
+ }
+
+ Sample Decompressor:
+
+ #ifdef __TURBOC__
+ #include <io.h>
+ #include <fcntl.h>
+ #else
+ #include <stdio.h>
+ #endif
+ #include <stdlib.h>
+
+ /* My I/O functions */
+ int read0 (void far *p, int n) {return read (0, p, n);}
+ int write1 (void far *p, int n) {return write (1, p, n);}
+
+ /* My Memory functions */
+ void *mymalloc (unsigned n) {return malloc (n);}
+ void myfree (void far *p) {free (p);}
+
+ void main (void)
+ {
+ long n;
+ #ifdef __TURBOC__
+ setmode (0, O_BINARY); setmode (1, O_BINARY);
+ #endif
+ /* Get the original file length */
+ read (0, &n, sizeof (n));
+
+ /* Now, Call the decompression function */
+ lzh_melt (read0, write1, malloc, free, n);
+ }
+
+The description of the library API is given in more detail below:
+
+ Prototypes:
+
+ int lzh_freeze (type_fnc_read pfnc_read,
+ type_fnc_write pfnc_write,
+ type_fnc_malloc pfnc_malloc,
+ type_fnc_free pfnc_free);
+
+ int lzh_melt (type_fnc_read pfnc_read,
+ type_fnc_write pfnc_write,
+ type_fnc_malloc pfnc_malloc,
+ type_fnc_free pfnc_free,
+ unsigned long origsize);
+
+ Remarks: "lzh_freeze" will perform an LZH compression on input
+ data that the caller provides through the
+ "fnc_read" callback function, and will output the
+ compressed result through a call to "fnc_write".
+
+ "lzh_melt" will perform decompression of input
+ data that the caller provides through the
+ "fnc_read" callback function, and will output the
+ decompressed result through a call to "fnc_write".
+
+ Argumets What it does
+ -------- ------------
+
+ fnc_read a callback function that library will call when
+ needing input data. "fnc_read" must return the
+ number of input bytes or -1 if there is an error.
+
+ fnc_write a callback function that library will call when
+ needing to output data. "fnc_write" must return
+ the number of outputed bytes (or -1 if there is an
+ error).
+
+ fnc_malloc a callback function that library will call when
+ needing to allocate memory. "fnc_malloc" must
+ return the address of the allocated memory or NULL
+ if there is an error.
+
+ fnc_free a callback function that library will call when
+ needing to free a memory that was allocated using
+ "fnc_malloc".
+
+ origsize the original number of bytes of the uncompressed
+ data.
+
diff --git a/lib/stsound/StSoundLibrary/LZH/lzhxlib.c b/lib/stsound/StSoundLibrary/LZH/lzhxlib.c
new file mode 100644
index 0000000000..08fa22e611
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/LZH/lzhxlib.c
@@ -0,0 +1,440 @@
+/**
+ *
+ * LZHXLib.C - Decompression module
+ *
+ * Compression Library (LZH) from Haruhiko Okumura's "ar".
+ *
+ * Copyright(c) 1996 Kerwin F. Medina
+ * Copyright(c) 1991 Haruhiko Okumura
+ *
+ * In MSDOS, this MUST be compiled using compact, large,
+ * or huge memory models
+ *
+ * To test, compile as below to create a stand-alone decompressor (will
+ * decompress standard input to standard output):
+ * bcc -O2 -mc -D__TEST__ lzhxlib.c
+ * or
+ * gcc -O2 -D__TEST__ lzhxlib.c
+ * then run as: lzhxlib <infile >outfile
+ *
+ * To use as a library for your application, __TEST__ must
+ * not be defined.
+ *
+ */
+
+#include "lzh.h"
+
+/*
+ * Additions
+ */
+
+static type_fnc_read fnc_read;
+static type_fnc_write fnc_write;
+static type_fnc_malloc fnc_malloc;
+static type_fnc_free fnc_free;
+static int with_error;
+
+#define BUFSIZE (1024 * 4)
+static int fillbufsize;
+static uchar far* buf;
+
+/*
+ * io.c
+ */
+
+static ushort far left [2 * NC - 1], far right[2 * NC - 1];
+
+static BITBUFTYPE bitbuf;
+static uint subbitbuf;
+static int bitcount;
+
+/** Shift bitbuf n bits left, read n bits */
+static void fillbuf (int n)
+{
+ static uint i;
+ bitbuf = (bitbuf << n) & 0xffff;
+ while (n > bitcount)
+ {
+ bitbuf |= subbitbuf << (n -= bitcount);
+ if (fillbufsize == 0)
+ {
+ i = 0;
+ fillbufsize = fnc_read (buf, BUFSIZE - 32);
+ }
+ if (fillbufsize > 0)
+ fillbufsize--, subbitbuf = buf[i++];
+ else
+ subbitbuf = 0;
+ bitcount = CHAR_BIT;
+ }
+ bitbuf |= subbitbuf >> (bitcount -= n);
+}
+
+static ushort getbits (int n)
+{
+ ushort x;
+ x = bitbuf >> (BITBUFSIZ - n);
+ fillbuf (n);
+ return x;
+}
+
+static void init_getbits (void)
+{
+ bitbuf = 0;
+ subbitbuf = 0;
+ bitcount = 0;
+ fillbuf (BITBUFSIZ);
+}
+
+/*
+ * maketbl.c
+ */
+
+static int make_table (int nchar, uchar far *bitlen,
+ int tablebits, ushort far *table)
+{
+ ushort count[17], weight[17], start[18], *p;
+ uint i, k, len, ch, jutbits, avail, nextcode, mask;
+
+ for (i = 1; i <= 16; i++)
+ count[i] = 0;
+ for (i = 0; i < nchar; i++)
+ count[bitlen[i]]++;
+
+ start[1] = 0;
+ for (i = 1; i <= 16; i++)
+ start[i + 1] = start[i] + (count[i] << (16 - i));
+ if (start[17] != (ushort) (1U << 16))
+ return (1); /* error: bad table */
+
+ jutbits = 16 - tablebits;
+ for (i = 1; i <= tablebits; i++)
+ {
+ start[i] >>= jutbits;
+ weight[i] = 1U << (tablebits - i);
+ }
+ while (i <= 16)
+ weight[i++] = 1U << (16 - i);
+
+ i = start[tablebits + 1] >> jutbits;
+ if (i != (ushort) (1U << 16))
+ {
+ k = 1U << tablebits;
+ while (i != k)
+ table[i++] = 0;
+ }
+
+ avail = nchar;
+ mask = 1U << (15 - tablebits);
+ for (ch = 0; ch < nchar; ch++)
+ {
+ if ((len = bitlen[ch]) == 0)
+ continue;
+ nextcode = start[len] + weight[len];
+ if (len <= tablebits)
+ {
+ for (i = start[len]; i < nextcode; i++)
+ table[i] = ch;
+ }
+ else
+ {
+ k = start[len];
+ p = &table[k >> jutbits];
+ i = len - tablebits;
+ while (i != 0)
+ {
+ if (*p == 0)
+ {
+ right[avail] = left[avail] = 0;
+ *p = avail++;
+ }
+ if (k & mask)
+ p = &right[*p];
+ else
+ p = &left[*p];
+ k <<= 1;
+ i--;
+ }
+ *p = ch;
+ }
+ start[len] = nextcode;
+ }
+ return (0);
+}
+
+/*
+ * huf.c
+ */
+
+#define NP (DICBIT + 1)
+#define NT (CODE_BIT + 3)
+#define PBIT 4 /* smallest integer such that (1U << PBIT) > NP */
+#define TBIT 5 /* smallest integer such that (1U << TBIT) > NT */
+#if NT > NP
+ #define NPT NT
+#else
+ #define NPT NP
+#endif
+
+static uchar far c_len[NC], far pt_len[NPT];
+static uint blocksize;
+static ushort far c_table[4096], far pt_table[256];
+
+static void read_pt_len (int nn, int nbit, int i_special)
+{
+ int i, n;
+ short c;
+ ushort mask;
+
+ n = getbits (nbit);
+ if (n == 0)
+ {
+ c = getbits (nbit);
+ for (i = 0; i < nn; i++)
+ pt_len[i] = 0;
+ for (i = 0; i < 256; i++)
+ pt_table[i] = c;
+ }
+ else
+ {
+ i = 0;
+ while (i < n)
+ {
+ c = bitbuf >> (BITBUFSIZ - 3);
+ if (c == 7)
+ {
+ mask = 1U << (BITBUFSIZ - 1 - 3);
+ while (mask & bitbuf)
+ {
+ mask >>= 1;
+ c++;
+ }
+ }
+ fillbuf ((c < 7) ? 3 : c - 3);
+ pt_len[i++] = c;
+ if (i == i_special)
+ {
+ c = getbits (2);
+ while (--c >= 0)
+ pt_len[i++] = 0;
+ }
+ }
+ while (i < nn)
+ pt_len[i++] = 0;
+ make_table (nn, pt_len, 8, pt_table);
+ }
+}
+
+static void read_c_len (void)
+{
+ short i, c, n;
+ ushort mask;
+
+ n = getbits (CBIT);
+ if (n == 0)
+ {
+ c = getbits (CBIT);
+ for (i = 0; i < NC; i++)
+ c_len[i] = 0;
+ for (i = 0; i < 4096; i++)
+ c_table[i] = c;
+ }
+ else
+ {
+ i = 0;
+ while (i < n)
+ {
+ c = pt_table[bitbuf >> (BITBUFSIZ - 8)];
+ if (c >= NT)
+ {
+ mask = 1U << (BITBUFSIZ - 1 - 8);
+ do
+ {
+ if (bitbuf & mask)
+ c = right[c];
+ else
+ c = left[c];
+ mask >>= 1;
+ } while (c >= NT);
+ }
+ fillbuf (pt_len[c]);
+ if (c <= 2)
+ {
+ if (c == 0)
+ c = 1;
+ else if (c == 1)
+ c = getbits (4) + 3;
+ else
+ c = getbits (CBIT) + 20;
+ while (--c >= 0)
+ c_len[i++] = 0;
+ }
+ else
+ c_len[i++] = c - 2;
+ }
+ while (i < NC)
+ c_len[i++] = 0;
+ make_table (NC, c_len, 12, c_table);
+ }
+}
+
+ushort decode_c (void)
+{
+ ushort j, mask;
+
+ if (blocksize == 0)
+ {
+ blocksize = getbits (16);
+ read_pt_len (NT, TBIT, 3);
+ read_c_len ();
+ read_pt_len (NP, PBIT, -1);
+ }
+ blocksize--;
+ j = c_table[bitbuf >> (BITBUFSIZ - 12)];
+ if (j >= NC)
+ {
+ mask = 1U << (BITBUFSIZ - 1 - 12);
+ do
+ {
+ if (bitbuf & mask)
+ j = right[j];
+ else
+ j = left[j];
+ mask >>= 1;
+ }
+ while (j >= NC);
+ }
+ fillbuf (c_len[j]);
+ return j;
+}
+
+ushort decode_p (void)
+{
+ ushort j, mask;
+
+ j = pt_table[bitbuf >> (BITBUFSIZ - 8)];
+ if (j >= NP)
+ {
+ mask = 1U << (BITBUFSIZ - 1 - 8);
+ do
+ {
+ if (bitbuf & mask)
+ j = right[j];
+ else
+ j = left[j];
+ mask >>= 1;
+ } while (j >= NP);
+ }
+ fillbuf (pt_len[j]);
+ if (j != 0)
+ j = (1U << (j - 1)) + getbits (j - 1);
+ return j;
+}
+
+void huf_decode_start (void)
+{
+ init_getbits ();
+ blocksize = 0;
+}
+
+/*
+ * decode.c
+ */
+
+static int decode_j; /* remaining bytes to copy */
+
+static void decode_start (void)
+{
+ fillbufsize = 0;
+ huf_decode_start ();
+ decode_j = 0;
+}
+
+/*
+ * The calling function must keep the number of bytes to be processed. This
+ * function decodes either 'count' bytes or 'DICSIZ' bytes, whichever is
+ * smaller, into the array 'buffer[]' of size 'DICSIZ' or more. Call
+ * decode_start() once for each new file before calling this function.
+ */
+static void decode (uint count, uchar buffer[])
+{
+ static uint i;
+ uint r, c;
+
+ r = 0;
+ while (--decode_j >= 0)
+ {
+ buffer[r] = buffer[i];
+ i = (i + 1) & (DICSIZ - 1);
+ if (++r == count)
+ return;
+ }
+ for (;;)
+ {
+ c = decode_c ();
+ if (c <= UCHAR_MAX)
+ {
+ buffer[r] = c;
+ if (++r == count)
+ return;
+ }
+ else
+ {
+ decode_j = c - (UCHAR_MAX + 1 - THRESHOLD);
+ i = (r - decode_p () - 1) & (DICSIZ - 1);
+ while (--decode_j >= 0)
+ {
+ buffer[r] = buffer[i];
+ i = (i + 1) & (DICSIZ - 1);
+ if (++r == count)
+ return;
+ }
+ }
+ }
+}
+
+int lzh_melt (type_fnc_write pfnc_read,
+ type_fnc_read pfnc_write,
+ type_fnc_malloc pfnc_malloc,
+ type_fnc_free pfnc_free,
+ ulong origsize)
+{
+ int n;
+ uchar *outbuf;
+
+ fnc_write = pfnc_write;
+ fnc_read = pfnc_read;
+ fnc_malloc = pfnc_malloc;
+ fnc_free = pfnc_free;
+
+ with_error = 0;
+
+ if ((buf = (uchar*)fnc_malloc (BUFSIZE)) == 0L)
+ return (1);
+ if ((outbuf = (uchar*)fnc_malloc (DICSIZ)) == 0L)
+ {
+ fnc_free (buf);
+ return (1);
+ }
+
+ decode_start ();
+ while (origsize != 0)
+ {
+ n = (uint) ((origsize > DICSIZ) ? DICSIZ : origsize);
+ decode (n, outbuf);
+ if (with_error)
+ break;
+
+ fnc_write (outbuf, n);
+ origsize -= n;
+ if (with_error)
+ break;
+ }
+
+ fnc_free(outbuf);
+ fnc_free(buf);
+
+ return (with_error ? 1 : 0);
+}
+
+/* end of LZHXLib.C */
diff --git a/lib/stsound/StSoundLibrary/Makefile.in b/lib/stsound/StSoundLibrary/Makefile.in
new file mode 100644
index 0000000000..6f0b5ed3e9
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/Makefile.in
@@ -0,0 +1,30 @@
+ARCH=@ARCH@
+
+CFLAGS +=-D_LINUX -fPIC
+CXXFLAGS +=-D_LINUX -fPIC
+ifeq ($(findstring osx,$(ARCH)), osx)
+ CFLAGS +=-D__linux__
+ CXXFLAGS +=-D__linux__
+endif
+
+OBJS=Depacker.o \
+ digidrum.o \
+ LZH/lzhxlib.o \
+ XBMCYM.o \
+ Ym2149Ex.o \
+ Ymload.o \
+ YmMusic.o \
+ YmUserInterface.o \
+
+SLIB=@abs_top_srcdir@/system/players/paplayer/stsoundlibrary-@ARCH@.so
+
+$(SLIB): $(OBJS)
+ifeq ($(findstring osx,$(ARCH)), osx)
+ ld -bundle -flat_namespace -undefined suppress -o $@ $(OBJS) $(BUNDLE1_O)
+ @abs_top_srcdir@/tools/Mach5/wrapper.rb $@;mv output.so $@
+ chmod +x $@
+else
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
+endif
+
+include @abs_top_srcdir@/Makefile.include
diff --git a/lib/stsound/StSoundLibrary/StSoundLibrary.h b/lib/stsound/StSoundLibrary/StSoundLibrary.h
new file mode 100644
index 0000000000..c79f5431a6
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/StSoundLibrary.h
@@ -0,0 +1,71 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Main header to use the StSound "C" like API in your production.
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+
+#ifndef __STSOUNDLIBRARY__
+#define __STSOUNDLIBRARY__
+
+#include "YmTypes.h"
+
+typedef void YMMUSIC;
+
+typedef struct
+{
+ ymchar * pSongName;
+ ymchar * pSongAuthor;
+ ymchar * pSongComment;
+ ymchar * pSongType;
+ ymchar * pSongPlayer;
+ yms32 musicTimeInSec;
+} ymMusicInfo_t;
+
+// Create object
+extern YMMUSIC * ymMusicCreate();
+
+// Release object
+extern void ymMusicDestroy(YMMUSIC *pMusic);
+
+// Functions
+extern ymbool ymMusicLoad(YMMUSIC *pMusic,const char *fName);
+extern ymbool ymMusicLoadMemory(YMMUSIC *pMusic,void *pBlock,ymu32 size);
+extern ymbool ymMusicCompute(YMMUSIC *pMusic,ymsample *pBuffer,ymint nbSample);
+extern void ymMusicSetLoopMode(YMMUSIC *pMusic,ymbool bLoop);
+extern const char * ymMusicGetLastError(YMMUSIC *pMusic);
+extern int ymMusicGetRegister(YMMUSIC *pMusic,ymint reg);
+extern void ymMusicGetInfo(YMMUSIC *pMusic,ymMusicInfo_t *pInfo);
+extern void ymMusicPlay(YMMUSIC *pMusic);
+extern void ymMusicPause(YMMUSIC *pMusic);
+extern void ymMusicStop(YMMUSIC *pMusic);
+
+extern ymbool ymMusicIsSeekable(YMMUSIC *pMusic);
+extern ymu32 ymMusicGetPos(YMMUSIC *pMusic);
+extern void ymMusicSeek(YMMUSIC *pMusic,ymu32 timeInMs);
+
+#endif
diff --git a/lib/stsound/StSoundLibrary/StSoundLibrary.vcproj b/lib/stsound/StSoundLibrary/StSoundLibrary.vcproj
new file mode 100644
index 0000000000..ff6be2b62b
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/StSoundLibrary.vcproj
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="libStSoundLibrary_dll"
+ ProjectGUID="{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}"
+ RootNamespace="libStSoundLibrary_dll"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)libs\$(ProjectName)\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)objs\$(ProjectName)\$(ConfigurationName)\"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\..\win32\"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Debug/StSoundLibrary.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4018"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="..\..\..\..\..\system\players\paplayer\StSoundLibrary.dll"
+ ProfileGuidedDatabase=""
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(TargetName).lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)libs\$(ProjectName)\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)objs\$(ProjectName)\$(ConfigurationName)\"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..\..\win32\"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Release/StSoundLibrary.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DisableSpecificWarnings="4018"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="..\..\..\..\..\system\players\paplayer\StSoundLibrary.dll"
+ ProfileGuidedDatabase=""
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(TargetName).lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="Depacker.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="digidrum.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\XBMCYM.cpp"
+ >
+ </File>
+ <File
+ RelativePath="Ym2149Ex.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="Ymload.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="YmMusic.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="YmUserInterface.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <Filter
+ Name="LZH"
+ >
+ <File
+ RelativePath="LZH\LZH.H"
+ >
+ </File>
+ <File
+ RelativePath="LZH\LZHXLIB.C"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="Depacker.h"
+ >
+ </File>
+ <File
+ RelativePath="digidrum.h"
+ >
+ </File>
+ <File
+ RelativePath="StSoundLibrary.h"
+ >
+ </File>
+ <File
+ RelativePath="Ym2149Ex.h"
+ >
+ </File>
+ <File
+ RelativePath="Ymload.h"
+ >
+ </File>
+ <File
+ RelativePath="YmMusic.h"
+ >
+ </File>
+ <File
+ RelativePath="YmTypes.h"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\revision.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj b/lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj
new file mode 100644
index 0000000000..b7ae067d61
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>libStSoundLibrary_dll</ProjectName>
+ <ProjectGuid>{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}</ProjectGuid>
+ <RootNamespace>libStSoundLibrary_dll</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ <Import Project="..\..\..\project\VS2010Express\XBMC for Windows.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ <Import Project="..\..\..\project\VS2010Express\XBMC for Windows.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StSoundLibrary</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">StSoundLibrary</TargetName>
+ <CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Build</CustomBuildAfterTargets>
+ <CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Build</CustomBuildAfterTargets>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..\..\win32\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <PrecompiledHeaderOutputFile>.\Debug/StSoundLibrary.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(Configuration)\vs2010\</AssemblerListingLocation>
+ <ObjectFileName>$(Configuration)\vs2010\</ObjectFileName>
+ <ProgramDataBaseFileName>$(Configuration)\vs2010\</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4018;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <ProfileGuidedDatabase>
+ </ProfileGuidedDatabase>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(Configuration)\vs2010\$(TargetName).lib</ImportLibrary>
+ </Link>
+ <PostBuildEvent>
+ <Command>
+ </Command>
+ </PostBuildEvent>
+ <CustomBuildStep>
+ <Command>copy /B /Y "$(TargetPath)" "$(SolutionDir)..\..\system\players\paplayer\$(TargetFileName)"</Command>
+ </CustomBuildStep>
+ <CustomBuildStep>
+ <Message>Copy output</Message>
+ </CustomBuildStep>
+ <CustomBuildStep>
+ <Outputs>$(SolutionDir)..\..\system\players\paplayer\$(TargetFileName)</Outputs>
+ <Inputs>$(TargetPath)</Inputs>
+ </CustomBuildStep>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..\..\win32\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <PrecompiledHeaderOutputFile>.\Release/StSoundLibrary.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(Configuration)\vs2010\</AssemblerListingLocation>
+ <ObjectFileName>$(Configuration)\vs2010\</ObjectFileName>
+ <ProgramDataBaseFileName>$(Configuration)\vs2010\</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DisableSpecificWarnings>4018;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <ProfileGuidedDatabase>
+ </ProfileGuidedDatabase>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(Configuration)\vs2010\$(TargetName).lib</ImportLibrary>
+ </Link>
+ <PostBuildEvent>
+ <Command>
+ </Command>
+ </PostBuildEvent>
+ <CustomBuildStep>
+ <Command>copy /B /Y "$(TargetPath)" "$(SolutionDir)..\..\system\players\paplayer\$(TargetFileName)"</Command>
+ </CustomBuildStep>
+ <CustomBuildStep>
+ <Message>Copy output</Message>
+ </CustomBuildStep>
+ <CustomBuildStep>
+ <Outputs>$(SolutionDir)..\..\system\players\paplayer\$(TargetFileName)</Outputs>
+ <Inputs>$(TargetPath)</Inputs>
+ </CustomBuildStep>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="Depacker.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="digidrum.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="XBMCYM.cpp" />
+ <ClCompile Include="Ym2149Ex.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="Ymload.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="YmMusic.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="YmUserInterface.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="LZH\LZHXLIB.C">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="LZH\LZH.H" />
+ <ClInclude Include="Depacker.h" />
+ <ClInclude Include="digidrum.h" />
+ <ClInclude Include="StSoundLibrary.h" />
+ <ClInclude Include="Ym2149Ex.h" />
+ <ClInclude Include="Ymload.h" />
+ <ClInclude Include="YmMusic.h" />
+ <ClInclude Include="YmTypes.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\revision.txt" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj.filters b/lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj.filters
new file mode 100644
index 0000000000..957cdc5d1b
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/StSoundLibrary.vcxproj.filters
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{d963d882-1c80-43af-8a68-d78c2f161582}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Source Files\LZH">
+ <UniqueIdentifier>{c15018a6-d07e-4698-afb6-235c6ffb50a1}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{e230fcc5-dec0-4939-914c-a0153802d866}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="Depacker.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="digidrum.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="XBMCYM.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="Ym2149Ex.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="Ymload.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="YmMusic.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="YmUserInterface.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="LZH\LZHXLIB.C">
+ <Filter>Source Files\LZH</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="LZH\LZH.H">
+ <Filter>Source Files\LZH</Filter>
+ </ClInclude>
+ <ClInclude Include="Depacker.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="digidrum.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="StSoundLibrary.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Ym2149Ex.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Ymload.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="YmMusic.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="YmTypes.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\revision.txt" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/lib/stsound/StSoundLibrary/XBMCYM.cpp b/lib/stsound/StSoundLibrary/XBMCYM.cpp
new file mode 100644
index 0000000000..a85acf85c6
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/XBMCYM.cpp
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2008-2010 Team XBMC
+ * http://www.xbmc.org
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XBMC; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#include "StSoundLibrary.h"
+#include "YmMusic.h"
+
+#include <stdio.h>
+#include <stdint.h>
+
+#ifdef __linux__
+#define __declspec(x)
+#endif
+
+extern "C"
+{
+ __declspec(dllexport) void* DLL_LoadYM(const char* szFileName)
+ {
+ YMMUSIC *pMusic = ymMusicCreate();
+
+ if (ymMusicLoad(pMusic,szFileName))
+ {
+ ymMusicSetLoopMode(pMusic,YMFALSE);
+ ymMusicPlay(pMusic);
+ return pMusic;
+ }
+
+ ymMusicDestroy(pMusic);
+
+ return 0;
+ }
+
+ void __declspec(dllexport) DLL_FreeYM(void* ym)
+ {
+ ymMusicStop((YMMUSIC*)ym);
+ ymMusicDestroy((YMMUSIC*)ym);
+ }
+
+ int __declspec(dllexport) DLL_FillBuffer(void* ym, char* szBuffer, int iSize)
+ {
+ if (ymMusicCompute((YMMUSIC*)ym,(ymsample*)szBuffer,iSize/2))
+ return iSize;
+ else
+ return 0;
+ }
+
+ unsigned long __declspec(dllexport) DLL_Seek(void* ym, unsigned long timepos)
+ {
+ if (ymMusicIsSeekable((YMMUSIC*)ym))
+ {
+ ymMusicSeek((YMMUSIC*)ym,timepos);
+ return timepos;
+ }
+
+ return 0;
+ }
+
+ const char __declspec(dllexport) *DLL_GetTitle(void* ym)
+ {
+ ymMusicInfo_t info;
+ ymMusicGetInfo((YMMUSIC*)ym,&info);
+ return info.pSongName;
+ }
+
+ const char __declspec(dllexport) *DLL_GetArtist(void* ym)
+ {
+ ymMusicInfo_t info;
+ ymMusicGetInfo((YMMUSIC*)ym,&info);
+ return info.pSongAuthor;
+ }
+
+ unsigned long __declspec(dllexport) DLL_GetLength(void* ym)
+ {
+ ymMusicInfo_t info;
+ ymMusicGetInfo((YMMUSIC*)ym,&info);
+ return info.musicTimeInSec;
+ }
+}
+
diff --git a/lib/stsound/StSoundLibrary/Ym2149Ex.cpp b/lib/stsound/StSoundLibrary/Ym2149Ex.cpp
new file mode 100644
index 0000000000..c8bf5f5686
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/Ym2149Ex.cpp
@@ -0,0 +1,603 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Extended YM-2149 Emulator, with ATARI music demos effects.
+ (SID-Like, Digidrum, Sync Buzzer, Sinus SID and Pattern SID)
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#include "YmTypes.h"
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <stdio.h>
+#include "Ym2149Ex.h"
+
+//-------------------------------------------------------------------
+// env shapes.
+//-------------------------------------------------------------------
+static const ymint Env00xx[8]={ 1,0,0,0,0,0,0,0 };
+static const ymint Env01xx[8]={ 0,1,0,0,0,0,0,0 };
+static const ymint Env1000[8]={ 1,0,1,0,1,0,1,0 };
+static const ymint Env1001[8]={ 1,0,0,0,0,0,0,0 };
+static const ymint Env1010[8]={ 1,0,0,1,1,0,0,1 };
+static const ymint Env1011[8]={ 1,0,1,1,1,1,1,1 };
+static const ymint Env1100[8]={ 0,1,0,1,0,1,0,1 };
+static const ymint Env1101[8]={ 0,1,1,1,1,1,1,1 };
+static const ymint Env1110[8]={ 0,1,1,0,0,1,1,0 };
+static const ymint Env1111[8]={ 0,1,0,0,0,0,0,0 };
+static const ymint * EnvWave[16] = { Env00xx,Env00xx,Env00xx,Env00xx,
+ Env01xx,Env01xx,Env01xx,Env01xx,
+ Env1000,Env1001,Env1010,Env1011,
+ Env1100,Env1101,Env1110,Env1111};
+
+static ymint ymVolumeTable[16] =
+{ 62,161,265,377,580,774,1155,1575,2260,3088,4570,6233,9330,13187,21220,32767};
+
+
+//----------------------------------------------------------------------
+// Very cool and fast DC Adjuster ! This is the *new* stuff of that
+// package coz I get that idea working on SainT in 2004 !
+// ( almost everything here is from 1995 !)
+//----------------------------------------------------------------------
+CDcAdjuster::CDcAdjuster()
+{
+ Reset();
+}
+
+void CDcAdjuster::Reset(void)
+{
+ for (ymint i=0;i<DC_ADJUST_BUFFERLEN;i++)
+ m_buffer[i] = 0;
+
+ m_pos = 0;
+ m_sum = 0;
+}
+
+void CDcAdjuster::AddSample(ymint sample)
+{
+ m_sum -= m_buffer[m_pos];
+ m_sum += sample;
+
+ m_buffer[m_pos] = sample;
+ m_pos = (m_pos+1)&(DC_ADJUST_BUFFERLEN-1);
+}
+
+
+
+
+//----------------------------------------------------------------------
+// Very simple low pass filter.
+// Filter coefs are 0.25,0.5,0.25
+//----------------------------------------------------------------------
+static ymsample *pInternalInput = NULL;
+static yms32 internalInputLen = 0;
+static ymsample oldFilter[2] = {0,0};
+
+ymsample *getBufferCopy(ymsample *pIn,ymint len)
+{
+ if (len>internalInputLen)
+ {
+ if (pInternalInput) free(pInternalInput);
+ pInternalInput = (ymsample*)malloc(len*sizeof(ymsample));
+ internalInputLen = len;
+ }
+ memcpy(pInternalInput,pIn,len*sizeof(ymsample));
+ return pInternalInput;
+}
+
+#define DSP_FILTER(a,b,c) (((ymint)(a)+((ymint)b+(ymint)b)+(ymint)(c))>>2)
+
+
+// Cheap but efficient low pass filter ( 0.25,0.5,0.25 )
+// filter: out -> out
+void lowpFilterProcess(ymsample *pOut,ymint len) // private
+{
+ymsample *pIn;
+ymint i;
+
+ pIn = getBufferCopy(pOut,len);
+ if (len>0) *pOut++ = DSP_FILTER(oldFilter[0],oldFilter[1],pIn[0]);
+ if (len>1) *pOut++ = DSP_FILTER(oldFilter[1],pIn[0],pIn[1]);
+ oldFilter[0] = pIn[len-2];
+ oldFilter[1] = pIn[len-1];
+ for (i=2;i<len;i++)
+ {
+ *pOut++ = DSP_FILTER(pIn[0],pIn[1],pIn[2]);
+ pIn++;
+ }
+}
+
+
+
+static ymu8 *ym2149EnvInit(ymu8 *pEnv,ymint a,ymint b)
+{
+ymint i;
+ymint d;
+
+ d = b-a;
+ a *= 15;
+ for (i=0;i<16;i++)
+ {
+ *pEnv++ = (ymu8)a;
+ a += d;
+ }
+ return pEnv;
+}
+
+
+CYm2149Ex::CYm2149Ex(ymu32 masterClock,ymint prediv,ymu32 playRate)
+{
+ymint i,env;
+
+
+ frameCycle = 0;
+ if (ymVolumeTable[15]==32767) // excuse me for that bad trick ;-)
+ {
+ for (i=0;i<16;i++)
+ {
+ ymVolumeTable[i] = (ymVolumeTable[i]*2)/6;
+ }
+ }
+
+ //--------------------------------------------------------
+ // build env shapes.
+ //--------------------------------------------------------
+ ymu8 *pEnv = &envData[0][0][0];
+ for (env=0;env<16;env++)
+ {
+ const ymint *pse = EnvWave[env];
+ for (ymint phase=0;phase<4;phase++)
+ {
+ pEnv = ym2149EnvInit(pEnv,pse[phase*2+0],pse[phase*2+1]);
+ }
+ }
+
+ internalClock = masterClock/prediv; // YM at 2Mhz on ATARI ST
+ replayFrequency = playRate; // DAC at 44.1Khz on PC
+ cycleSample = 0;
+
+ // Set volume voice pointers.
+ pVolA = &volA;
+ pVolB = &volB;
+ pVolC = &volC;
+
+ // Reset YM2149
+ reset();
+
+
+}
+
+CYm2149Ex::~CYm2149Ex()
+{
+}
+
+void CYm2149Ex::setClock(ymu32 _clock)
+{
+ internalClock = _clock;
+}
+
+
+ymu32 CYm2149Ex::toneStepCompute(ymint rHigh,ymint rLow)
+{
+
+ ymint per = rHigh&15;
+ per = (per<<8)+rLow;
+ if (per<=5)
+ {
+ return 0;
+ }
+
+#ifdef YM_INTEGER_ONLY
+ yms64 step = internalClock;
+ step <<= (15+16-3);
+ step /= (per * replayFrequency);
+#else
+ ymfloat step = internalClock;
+ step /= ((ymfloat)per*8.0*(ymfloat)replayFrequency);
+ step *= 32768.0*65536.0;
+#endif
+ ymu32 istep = (ymu32)step;
+ return istep;
+}
+
+ymu32 CYm2149Ex::noiseStepCompute(ymint rNoise)
+{
+
+
+ ymint per = (rNoise&0x1f);
+ if (per<3)
+ return 0;
+
+#ifdef YM_INTEGER_ONLY
+ yms64 step = internalClock;
+ step <<= (16-1-3);
+ step /= (per * replayFrequency);
+#else
+ ymfloat step = internalClock;
+ step /= ((ymfloat)per*8.0*(ymfloat)replayFrequency);
+ step *= 65536.0/2.0;
+#endif
+
+ return (ymu32)step;
+}
+
+ymu32 CYm2149Ex::rndCompute(void)
+{
+ ymint rBit = (rndRack&1) ^ ((rndRack>>2)&1);
+ rndRack = (rndRack>>1) | (rBit<<16);
+ return (rBit ? 0 : 0xffff);
+}
+
+ymu32 CYm2149Ex::envStepCompute(ymint rHigh,ymint rLow)
+{
+
+
+ ymint per = rHigh;
+ per = (per<<8)+rLow;
+ if (per<3)
+ return 0;
+
+#ifdef YM_INTEGER_ONLY
+ yms64 step = internalClock;
+ step <<= (16+16-9);
+ step /= (per * replayFrequency);
+#else
+ ymfloat step = internalClock;
+ step /= ((ymfloat)per*512.0*(ymfloat)replayFrequency);
+ step *= 65536.0*65536.0;
+#endif
+
+ return (ymu32)step;
+}
+
+
+void CYm2149Ex::reset(void)
+{
+ writeRegister(7,0x3f);
+ writeRegister(8,0);
+ writeRegister(9,0);
+ writeRegister(10,0);
+ currentNoise = 0xffff;
+ rndRack = 1;
+ sidStop(0);
+ sidStop(1);
+ sidStop(2);
+
+ envShape = 0;
+ envPhase = 0;
+ envPos = 0;
+
+ m_dcAdjust.Reset();
+
+ memset(specialEffect,0,sizeof(specialEffect));
+
+ syncBuzzerStop();
+
+}
+
+
+void CYm2149Ex::sidVolumeCompute(ymint voice,ymint *pVol)
+{
+
+ struct YmSpecialEffect *pVoice = specialEffect+voice;
+
+ if (pVoice->bSid)
+ {
+ if (pVoice->sidPos & (1<<31))
+ writeRegister(8+voice,pVoice->sidVol);
+ else
+ writeRegister(8+voice,0);
+ }
+ else if (pVoice->bDrum)
+ {
+// writeRegister(8+voice,pVoice->drumData[pVoice->drumPos>>DRUM_PREC]>>4);
+
+ *pVol = (pVoice->drumData[pVoice->drumPos>>DRUM_PREC] * 255) / 6;
+
+ switch (voice)
+ {
+ case 0:
+ pVolA = &volA;
+ mixerTA = 0xffff;
+ mixerNA = 0xffff;
+ break;
+ case 1:
+ pVolB = &volB;
+ mixerTB = 0xffff;
+ mixerNB = 0xffff;
+ break;
+ case 2:
+ pVolC = &volC;
+ mixerTC = 0xffff;
+ mixerNC = 0xffff;
+ break;
+ }
+
+ pVoice->drumPos += pVoice->drumStep;
+ if ((pVoice->drumPos>>DRUM_PREC) >= pVoice->drumSize)
+ {
+ pVoice->bDrum = YMFALSE;
+ }
+
+ }
+}
+
+ymsample CYm2149Ex::nextSample(void)
+{
+ymint vol;
+ymint bt,bn;
+
+ if (noisePos&0xffff0000)
+ {
+ currentNoise ^= rndCompute();
+ noisePos &= 0xffff;
+ }
+ bn = currentNoise;
+
+ volE = ymVolumeTable[envData[envShape][envPhase][envPos>>(32-5)]];
+
+ sidVolumeCompute(0,&volA);
+ sidVolumeCompute(1,&volB);
+ sidVolumeCompute(2,&volC);
+
+ //---------------------------------------------------
+ // Tone+noise+env+DAC for three voices !
+ //---------------------------------------------------
+ bt = ((((yms32)posA)>>31) | mixerTA) & (bn | mixerNA);
+ vol = (*pVolA)&bt;
+ bt = ((((yms32)posB)>>31) | mixerTB) & (bn | mixerNB);
+ vol += (*pVolB)&bt;
+ bt = ((((yms32)posC)>>31) | mixerTC) & (bn | mixerNC);
+ vol += (*pVolC)&bt;
+
+ //---------------------------------------------------
+ // Inc
+ //---------------------------------------------------
+ posA += stepA;
+ posB += stepB;
+ posC += stepC;
+ noisePos += noiseStep;
+ envPos += envStep;
+ if (0 == envPhase)
+ {
+ if (envPos<envStep)
+ {
+ envPhase = 1;
+ }
+ }
+
+ syncBuzzerPhase += syncBuzzerStep;
+ if (syncBuzzerPhase&(1<<31))
+ {
+ envPos = 0;
+ envPhase = 0;
+ syncBuzzerPhase &= 0x7fffffff;
+ }
+
+ specialEffect[0].sidPos += specialEffect[0].sidStep;
+ specialEffect[1].sidPos += specialEffect[1].sidStep;
+ specialEffect[2].sidPos += specialEffect[2].sidStep;
+
+ //---------------------------------------------------
+ // Normalize process
+ //---------------------------------------------------
+ m_dcAdjust.AddSample(vol);
+ return (vol - m_dcAdjust.GetDcLevel());
+}
+
+
+ymint CYm2149Ex::readRegister(ymint reg)
+{
+ if ((reg>=0) && (reg<=13)) return registers[reg];
+ else return -1;
+}
+
+void CYm2149Ex::writeRegister(ymint reg,ymint data)
+{
+
+ switch (reg)
+ {
+ case 0:
+ registers[0] = data&255;
+ stepA = toneStepCompute(registers[1],registers[0]);
+ if (!stepA) posA = (1<<31); // Assume output always 1 if 0 period (for Digi-sample !)
+ break;
+
+ case 2:
+ registers[2] = data&255;
+ stepB = toneStepCompute(registers[3],registers[2]);
+ if (!stepB) posB = (1<<31); // Assume output always 1 if 0 period (for Digi-sample !)
+ break;
+
+ case 4:
+ registers[4] = data&255;
+ stepC = toneStepCompute(registers[5],registers[4]);
+ if (!stepC) posC = (1<<31); // Assume output always 1 if 0 period (for Digi-sample !)
+ break;
+
+ case 1:
+ registers[1] = data&15;
+ stepA = toneStepCompute(registers[1],registers[0]);
+ if (!stepA) posA = (1<<31); // Assume output always 1 if 0 period (for Digi-sample !)
+ break;
+
+ case 3:
+ registers[3] = data&15;
+ stepB = toneStepCompute(registers[3],registers[2]);
+ if (!stepB) posB = (1<<31); // Assume output always 1 if 0 period (for Digi-sample !)
+ break;
+
+ case 5:
+ registers[5] = data&15;
+ stepC = toneStepCompute(registers[5],registers[4]);
+ if (!stepC) posC = (1<<31); // Assume output always 1 if 0 period (for Digi-sample !)
+ break;
+
+ case 6:
+ registers[6] = data&0x1f;
+ noiseStep = noiseStepCompute(registers[6]);
+ if (!noiseStep)
+ {
+ noisePos = 0;
+ currentNoise = 0xffff;
+ }
+ break;
+
+ case 7:
+ registers[7] = data&255;
+ mixerTA = (data&(1<<0)) ? 0xffff : 0;
+ mixerTB = (data&(1<<1)) ? 0xffff : 0;
+ mixerTC = (data&(1<<2)) ? 0xffff : 0;
+ mixerNA = (data&(1<<3)) ? 0xffff : 0;
+ mixerNB = (data&(1<<4)) ? 0xffff : 0;
+ mixerNC = (data&(1<<5)) ? 0xffff : 0;
+ break;
+
+ case 8:
+ registers[8] = data&31;
+ volA = ymVolumeTable[data&15];
+ if (data&0x10)
+ pVolA = &volE;
+ else
+ pVolA = &volA;
+ break;
+
+ case 9:
+ registers[9] = data&31;
+ volB = ymVolumeTable[data&15];
+ if (data&0x10)
+ pVolB = &volE;
+ else
+ pVolB = &volB;
+ break;
+
+ case 10:
+ registers[10] = data&31;
+ volC = ymVolumeTable[data&15];
+ if (data&0x10)
+ pVolC = &volE;
+ else
+ pVolC = &volC;
+ break;
+
+ case 11:
+ registers[11] = data&255;
+ envStep = envStepCompute(registers[12],registers[11]);
+ break;
+
+ case 12:
+ registers[12] = data&255;
+ envStep = envStepCompute(registers[12],registers[11]);
+ break;
+
+ case 13:
+ registers[13] = data&0xf;
+ envPos = 0;
+ envPhase = 0;
+ envShape = data&0xf;
+ break;
+
+ }
+}
+
+void CYm2149Ex::update(ymsample *pSampleBuffer,ymint nbSample)
+{
+
+
+ ymsample *pBuffer = pSampleBuffer;
+ ymint nbs = nbSample;
+
+
+ if (nbSample>0)
+ {
+ do
+ {
+ *pSampleBuffer++ = nextSample();
+ }
+ while (--nbSample);
+ }
+
+ lowpFilterProcess((ymsample*)pBuffer,nbs);
+
+}
+
+void CYm2149Ex::drumStart(ymint voice,ymu8 *pDrumBuffer,ymu32 drumSize,ymint drumFreq)
+{
+ specialEffect[voice].drumData = pDrumBuffer;
+ specialEffect[voice].drumPos = 0;
+ specialEffect[voice].drumSize = drumSize;
+ specialEffect[voice].drumStep = (drumFreq<<DRUM_PREC)/replayFrequency;
+ specialEffect[voice].bDrum = YMTRUE;
+}
+
+void CYm2149Ex::drumStop(ymint voice)
+{
+ specialEffect[voice].bDrum = YMFALSE;
+}
+
+void CYm2149Ex::sidStart(ymint voice,ymint timerFreq,ymint vol)
+{
+#ifdef YM_INTEGER_ONLY
+ ymu32 tmp = timerFreq * ((1<<31) / replayFrequency);
+#else
+ ymfloat tmp = (ymfloat)timerFreq*((ymfloat)(1<<31))/(ymfloat)replayFrequency;
+#endif
+ specialEffect[voice].sidStep = (ymu32)tmp;
+ specialEffect[voice].sidVol = vol&15;
+ specialEffect[voice].bSid = YMTRUE;
+}
+
+void CYm2149Ex::sidSinStart(ymint voice,ymint timerFreq,ymint vol)
+{
+ // TODO
+}
+
+void CYm2149Ex::sidStop(ymint voice)
+{
+ specialEffect[voice].bSid = YMFALSE;
+}
+
+void CYm2149Ex::syncBuzzerStart(ymint timerFreq,ymint _envShape)
+{
+#ifdef YM_INTEGER_ONLY
+ ymu32 tmp = timerFreq * ((1<<31) / replayFrequency);
+#else
+ ymfloat tmp = (ymfloat)timerFreq*((ymfloat)(1<<31))/(ymfloat)replayFrequency;
+#endif
+ envShape = envShape&15;
+ syncBuzzerStep = (ymu32)tmp;
+ syncBuzzerPhase = 0;
+ bSyncBuzzer = YMTRUE;
+}
+
+void CYm2149Ex::syncBuzzerStop(void)
+{
+ bSyncBuzzer = YMFALSE;
+ syncBuzzerPhase = 0;
+ syncBuzzerStep = 0;
+}
+
diff --git a/lib/stsound/StSoundLibrary/Ym2149Ex.h b/lib/stsound/StSoundLibrary/Ym2149Ex.h
new file mode 100644
index 0000000000..23efaef3c9
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/Ym2149Ex.h
@@ -0,0 +1,160 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Extended YM-2149 Emulator, with ATARI music demos effects.
+ (SID-Like, Digidrum, Sync Buzzer, Sinus SID and Pattern SID)
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+
+#ifndef __YM2149EX__
+#define __YM2149EX__
+
+#define AMSTRAD_CLOCK 1000000L
+#define ATARI_CLOCK 2000000L
+#define SPECTRUM_CLOCK 1773400L
+#define MFP_CLOCK 2457600L
+#define NOISESIZE 16384
+#define MAX_NBSAMPLE 1024
+#define DRUM_PREC 15
+
+#define PI 3.1415926
+#define SIDSINPOWER 0.7
+
+enum
+{
+ VOICE_A=0,
+ VOICE_B=1,
+ VOICE_C=2,
+};
+
+struct YmSpecialEffect
+{
+
+ ymbool bDrum;
+ ymu32 drumSize;
+ ymu8 * drumData;
+ ymu32 drumPos;
+ ymu32 drumStep;
+
+ ymbool bSid;
+ ymu32 sidPos;
+ ymu32 sidStep;
+ ymint sidVol;
+
+};
+
+static const ymint DC_ADJUST_BUFFERLEN = 512;
+
+class CDcAdjuster
+{
+public:
+ CDcAdjuster();
+
+ void AddSample(ymint sample);
+ ymint GetDcLevel(void) { return m_sum / DC_ADJUST_BUFFERLEN; }
+ void Reset(void);
+
+private:
+ ymint m_buffer[DC_ADJUST_BUFFERLEN];
+ ymint m_pos;
+ ymint m_sum;
+};
+
+
+class CYm2149Ex
+{
+public:
+ CYm2149Ex(ymu32 masterClock=ATARI_CLOCK,ymint prediv=1,ymu32 playRate=44100);
+ ~CYm2149Ex();
+
+ void reset(void);
+ void update(signed short *pSampleBuffer,ymint nbSample);
+
+ void setClock(ymu32 _clock);
+ void writeRegister(ymint reg,ymint value);
+ ymint readRegister(ymint reg);
+ void drumStart(ymint voice,ymu8 *drumBuffer,ymu32 drumSize,ymint drumFreq);
+ void drumStop(ymint voice);
+ void sidStart(ymint voice,ymint freq,ymint vol);
+ void sidSinStart(ymint voice,ymint timerFreq,ymint sinPattern);
+ void sidStop(ymint voice);
+ void syncBuzzerStart(ymint freq,ymint envShape);
+ void syncBuzzerStop(void);
+
+
+private:
+
+ CDcAdjuster m_dcAdjust;
+
+ ymu32 frameCycle;
+ ymu32 cyclePerSample;
+ inline ymsample nextSample(void);
+ ymu32 toneStepCompute(ymint rHigh,ymint rLow);
+ ymu32 noiseStepCompute(ymint rNoise);
+ ymu32 envStepCompute(ymint rHigh,ymint rLow);
+ void updateEnvGen(ymint nbSample);
+ void updateNoiseGen(ymint nbSample);
+ void updateToneGen(ymint voice,ymint nbSample);
+ ymu32 rndCompute(void);
+
+ void sidVolumeCompute(ymint voice,ymint *pVol);
+
+ ymint replayFrequency;
+ ymu32 internalClock;
+ ymint registers[14];
+
+ ymu32 cycleSample;
+ ymu32 stepA,stepB,stepC;
+ ymu32 posA,posB,posC;
+ ymint volA,volB,volC,volE;
+ ymu32 mixerTA,mixerTB,mixerTC;
+ ymu32 mixerNA,mixerNB,mixerNC;
+ ymint *pVolA,*pVolB,*pVolC;
+
+ ymu32 noiseStep;
+ ymu32 noisePos;
+ ymu32 rndRack;
+ ymu32 currentNoise;
+ ymu32 bWrite13;
+
+ ymu32 envStep;
+ ymu32 envPos;
+ ymint envPhase;
+ ymint envShape;
+ ymu8 envData[16][2][16*2];
+ ymint globalVolume;
+
+ struct YmSpecialEffect specialEffect[3];
+ ymbool bSyncBuzzer;
+ ymu32 syncBuzzerStep;
+ ymu32 syncBuzzerPhase;
+ ymint syncBuzzerShape;
+
+
+};
+
+#endif
diff --git a/lib/stsound/StSoundLibrary/YmMusic.cpp b/lib/stsound/StSoundLibrary/YmMusic.cpp
new file mode 100644
index 0000000000..3f0bf4e8a2
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/YmMusic.cpp
@@ -0,0 +1,731 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ YM Music Driver
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#include <string.h>
+#include <stdlib.h>
+#include "YmMusic.h"
+
+#define _LINEAR_OVRS // Activate linear oversampling (best quality) Only used for DigiMix and UniversalTracker YM file type
+
+
+// ATARI-ST MFP chip predivisor
+static const ymint mfpPrediv[8] = {0,4,10,16,50,64,100,200};
+
+
+
+CYmMusic::CYmMusic(ymint _replayRate)
+{
+
+ pBigMalloc = NULL;
+ pSongName = NULL;
+ pSongAuthor = NULL;
+ pSongComment = NULL;
+ pSongType = NULL;
+ pSongPlayer = NULL;
+
+ pBigSampleBuffer = NULL;
+ pMixBlock = NULL;
+
+ replayRate = _replayRate;
+ innerSamplePos = 0;
+ nbDrum = 0;
+ pDrumTab = NULL;
+ setLoopMode(YMFALSE);
+}
+
+void CYmMusic::setTimeControl(ymbool bTime)
+{
+ if (bTime)
+ attrib |= A_TIMECONTROL;
+ else
+ attrib &= (~A_TIMECONTROL);
+}
+
+CYmMusic::~CYmMusic()
+{
+ stop();
+ unLoad();
+}
+
+void CYmMusic::setLoopMode(ymbool bLoopMode)
+{
+ bLoop = bLoopMode;
+}
+
+void CYmMusic::setPlayerRate(ymint rate)
+{
+ playerRate = rate;
+}
+
+ymu32 CYmMusic::getPos()
+{
+ if (!isSeekable()) return 0;
+ if ((nbFrame>0) && (playerRate>0))
+ {
+ return ((ymu32)currentFrame*1000)/(ymu32)playerRate;
+ }
+ else
+ return 0;
+
+}
+
+ymu32 CYmMusic::getMusicTime(void)
+{
+ if ((nbFrame>0) && (playerRate>0))
+ {
+ return ((ymu32)nbFrame*1000)/(ymu32)playerRate;
+ }
+ else
+ return 0;
+
+}
+
+ymu32 CYmMusic::setMusicTime(ymu32 time)
+{
+ if (!isSeekable()) return 0;
+ ymu32 newTime = 0;
+
+ if ((songType>=YM_V2) && (songType<YM_VMAX))
+ {
+ newTime = time;
+ if (newTime>=getMusicTime()) newTime = 0;
+ currentFrame = (newTime*(ymu32)playerRate)/1000;
+ }
+ else if ((songType>=YM_TRACKER1) && (songType<YM_TRACKERMAX))
+ {
+ newTime = time;
+ if (newTime>=getMusicTime()) newTime = 0;
+ currentFrame = (newTime*(ymu32)playerRate)/1000;
+ }
+
+ return newTime;
+}
+
+void CYmMusic::getMusicInfo(ymMusicInfo_t *pInfo)
+{
+ if (pInfo)
+ {
+ pInfo->pSongName = pSongName;
+ pInfo->pSongAuthor = pSongAuthor;
+ pInfo->pSongComment = pSongComment;
+ pInfo->pSongType = pSongType;
+ pInfo->pSongPlayer = pSongPlayer;
+
+ if (playerRate>0)
+ pInfo->musicTimeInSec = (ymu32)nbFrame/(ymu32)playerRate;
+ else
+ pInfo->musicTimeInSec = 0;
+ }
+}
+
+
+void CYmMusic::setAttrib(ymint _attrib)
+{
+ attrib = _attrib;
+}
+
+ymint CYmMusic::getAttrib(void)
+{
+ return attrib;
+}
+
+ymbool CYmMusic::isSeekable(void)
+{
+ return getAttrib()&A_TIMECONTROL;
+}
+
+void CYmMusic::setLastError(char *pError)
+{
+ pLastError = pError;
+}
+
+char *CYmMusic::getLastError(void)
+{
+ return pLastError;
+}
+
+void bufferClear(ymsample *pBuffer,ymint nbSample)
+{
+ memset((void*)pBuffer,0,nbSample*sizeof(ymsample));
+}
+
+ymbool CYmMusic::update(ymsample *sampleBuffer,ymint nbSample)
+{
+ymint sampleToCompute;
+ymint vblNbSample;
+
+
+ if ((!bMusicOk) ||
+ (bPause) ||
+ (bMusicOver))
+ {
+ bufferClear(sampleBuffer,nbSample);
+ if (bMusicOver)
+ return YMFALSE;
+ else
+ return YMTRUE;
+ }
+
+ if ((songType >= YM_MIX1) && (songType < YM_MIXMAX))
+ {
+ stDigitMix(sampleBuffer,nbSample);
+ }
+ else if ((songType >= YM_TRACKER1) && (songType<YM_TRACKERMAX))
+ {
+ ymTrackerUpdate(sampleBuffer,nbSample);
+ }
+ else
+ {
+ ymsample *pOut = sampleBuffer;
+ ymint nbs = nbSample;
+ vblNbSample = replayRate/playerRate;
+ do
+ {
+ // Nb de sample à calculer avant l'appel de Player
+ sampleToCompute = vblNbSample-innerSamplePos;
+ // Test si la fin du buffer arrive avant la fin de sampleToCompute
+ if (sampleToCompute>nbs) sampleToCompute = nbs;
+ innerSamplePos += sampleToCompute;
+ if (innerSamplePos>=vblNbSample)
+ {
+ player(); // Lecture de la partition (playerRate Hz)
+ innerSamplePos -= vblNbSample;
+ }
+ if (sampleToCompute>0)
+ {
+ ymChip.update(pOut,sampleToCompute); // YM Emulation.
+ pOut += sampleToCompute;
+ }
+ nbs -= sampleToCompute;
+ }
+ while (nbs>0);
+ }
+
+
+ return YMTRUE;
+}
+
+
+
+void CYmMusic::readYm6Effect(unsigned char *pReg,ymint code,ymint prediv,ymint count)
+{
+ymint voice;
+ymint ndrum;
+
+ code = pReg[code]&0xf0;
+ prediv = (pReg[prediv]>>5)&7;
+ count = pReg[count];
+
+ if (code&0x30)
+ {
+ ymu32 tmpFreq;
+ // Ici il y a un effet sur la voie:
+
+ voice = ((code&0x30)>>4)-1;
+ switch (code&0xc0)
+ {
+ case 0x00: // SID
+ case 0x80: // Sinus-SID
+
+ prediv = mfpPrediv[prediv];
+ prediv *= count;
+ tmpFreq = 0;
+ if (prediv)
+ {
+ tmpFreq = 2457600L / prediv;
+ if ((code&0xc0)==0x00)
+ ymChip.sidStart(voice,tmpFreq,pReg[voice+8]&15);
+ else
+ ymChip.sidSinStart(voice,tmpFreq,pReg[voice+8]&15);
+ }
+ break;
+
+ case 0x40: // DigiDrum
+ ndrum = pReg[voice+8]&31;
+ if ((ndrum>=0) && (ndrum<nbDrum))
+ {
+ prediv = mfpPrediv[prediv];
+ prediv *= count;
+ if (prediv>0)
+ {
+ tmpFreq = 2457600L / prediv;
+ ymChip.drumStart(voice,pDrumTab[ndrum].pData,pDrumTab[ndrum].size,tmpFreq);
+ }
+ }
+ break;
+
+ case 0xc0: // Sync-Buzzer.
+
+ prediv = mfpPrediv[prediv];
+ prediv *= count;
+ tmpFreq = 0;
+ if (prediv)
+ {
+ tmpFreq = 2457600L / prediv;
+ ymChip.syncBuzzerStart(tmpFreq,pReg[voice+8]&15);
+ }
+ break;
+
+
+ }
+
+ }
+}
+
+void CYmMusic::setVolume(ymint volume)
+{
+// ymChip.setGlobalVolume(volume);
+}
+
+void CYmMusic::player(void)
+ {
+ ymu8 *ptr;
+ ymu32 prediv;
+ ymint voice;
+ ymint ndrum;
+
+
+ if (currentFrame<0) currentFrame = 0;
+
+ if (currentFrame>=nbFrame)
+ {
+ if (bLoop)
+ {
+ currentFrame = loopFrame;
+ }
+ else
+ {
+ bMusicOver = YMTRUE;
+ ymChip.reset();
+ return;
+ }
+ }
+
+ ptr = pDataStream+currentFrame*streamInc;
+
+ for (ymint i=0;i<=10;i++)
+ ymChip.writeRegister(i,ptr[i]);
+
+ ymChip.sidStop(0);
+ ymChip.sidStop(1);
+ ymChip.sidStop(2);
+ ymChip.syncBuzzerStop();
+
+ //---------------------------------------------
+ // Check digi-drum
+ //---------------------------------------------
+ if (songType == YM_V2) // MADMAX specific !
+ {
+ if (ptr[13]!=0xff)
+ {
+ ymChip.writeRegister(11,ptr[11]);
+ ymChip.writeRegister(12,0);
+ ymChip.writeRegister(13,10); // MADMAX specific !!
+ }
+ if (ptr[10]&0x80) // bit 7 volume canal C pour annoncer une digi-drum madmax.
+ {
+ ymint sampleNum;
+ ymu32 sampleFrq;
+ ymChip.writeRegister(7,ymChip.readRegister(7)|0x24) ; // Coupe TONE + NOISE canal C.
+ sampleNum = ptr[10]&0x7f; // Numero du sample
+
+ if (ptr[12])
+ {
+ sampleFrq = (MFP_CLOCK / ptr[12]);
+ ymChip.drumStart( 2, // Voice C
+ sampleAdress[sampleNum],
+ sampleLen[sampleNum],
+ sampleFrq);
+ }
+ }
+ }
+ else if (songType >= YM_V3)
+ {
+ ymChip.writeRegister(11,ptr[11]);
+ ymChip.writeRegister(12,ptr[12]);
+ if (ptr[13]!=0xff)
+ {
+ ymChip.writeRegister(13,ptr[13]);
+ }
+
+ if (songType >= YM_V5)
+ {
+ ymint code;
+
+ if (songType == YM_V6)
+ {
+ readYm6Effect(ptr,1,6,14);
+ readYm6Effect(ptr,3,8,15);
+ }
+ else
+ { // YM5 effect decoding
+
+ //------------------------------------------------------
+ // Sid Voice !!
+ //------------------------------------------------------
+ code = (ptr[1]>>4)&3;
+ if (code!=0)
+ {
+ ymu32 tmpFreq;
+ voice = code-1;
+ prediv = mfpPrediv[(ptr[6]>>5)&7];
+ prediv *= ptr[14];
+ tmpFreq = 0;
+ if (prediv)
+ {
+ tmpFreq = 2457600L / prediv;
+ ymChip.sidStart(voice,tmpFreq,ptr[voice+8]&15);
+ }
+ }
+
+ //------------------------------------------------------
+ // YM5 Digi Drum.
+ //------------------------------------------------------
+ code = (ptr[3]>>4)&3;
+ if (code!=0)
+ { // Ici un digidrum demarre sur la voie voice.
+ voice = code-1;
+ ndrum = ptr[8+voice]&31;
+ if ((ndrum>=0) && (ndrum<nbDrum))
+ {
+ ymu32 sampleFrq;
+ prediv = mfpPrediv[(ptr[8]>>5)&7];
+ prediv *= ptr[15];
+ if (prediv)
+ {
+ sampleFrq = MFP_CLOCK / prediv;
+ ymChip.drumStart(voice,pDrumTab[ndrum].pData,pDrumTab[ndrum].size,sampleFrq);
+ }
+ }
+ }
+ }
+ }
+ }
+ currentFrame++;
+ }
+
+/*
+
+ x x x x x x x x r0
+ 0 0 0 0 x x x x r1 // Special FX 1a
+ x x x x x x x x r2
+ 0 0 0 0 x x x x r3 // Special FX 2a
+ x x x x x x x x r4
+ 0 0 0 0 x x x x r5
+ 0 0 0 x x x x x r6 // Special FX 1b
+ 0 0 x x x x x x r7
+ 0 0 0 x x x x x r8 // Special FX 2b
+ 0 0 0 x x x x x r9
+ 0 0 0 x x x x x r10
+ x x x x x x x x r11
+ x x x x x x x x r12
+ 0 0 0 0 x x x x r13
+ 0 0 0 0 0 0 0 0 r14 // Special FX 1c
+ 0 0 0 0 0 0 0 0 r15 // Special FX 2c
+
+
+ Special Fx ?a
+ 0 0 0 0 : No special FX running
+ 0 0 0 1 : Sid Voice A
+ 0 0 1 0 : Sid Voice B
+ 0 0 1 1 : Sid Voice C
+ 0 1 0 0 : Extended Fx voice A
+ 0 1 0 1 : Digidrum voice A
+ 0 1 1 0 : Digidrum voice B
+ 0 1 1 1 : Digidrum voice C
+ 1 0 0 0 : Extended Fx voice B
+ 1 0 0 1 : Sinus SID voice A
+ 1 0 1 0 : Sinus SID voice B
+ 1 0 1 1 : Sinus SID voice C
+ 1 1 0 0 : Extended Fx voice C
+ 1 1 0 1 : Sync Buzzer voice A
+ 1 1 1 0 : Sync Buzzer voice B
+ 1 1 1 1 : Sync Buzzer voice C
+
+
+
+*/
+
+void CYmMusic::readNextBlockInfo(void)
+{
+ nbRepeat--;
+ if (nbRepeat<=0)
+ {
+ mixPos++;
+ if (mixPos >= nbMixBlock)
+ {
+ mixPos = 0;
+ if (!bLoop) bMusicOver = YMTRUE;
+ }
+ nbRepeat = pMixBlock[mixPos].nbRepeat;
+ }
+ pCurrentMixSample = pBigSampleBuffer + pMixBlock[mixPos].sampleStart;
+ currentSampleLength = (pMixBlock[mixPos].sampleLength)<<12;
+ currentPente = (((ymu32)pMixBlock[mixPos].replayFreq)<<12) / PC_DAC_FREQ;
+ currentPos &= ((1<<12)-1);
+}
+
+void CYmMusic::stDigitMix(ymsample *pWrite16,ymint nbs)
+{
+
+
+ if (bMusicOver) return;
+
+ if (mixPos == -1)
+ {
+ nbRepeat = -1;
+ readNextBlockInfo();
+ }
+
+ if (nbs) do
+ {
+
+ ymint sa = (ymint)(ymsample)(pCurrentMixSample[currentPos>>12]<<8);
+#ifdef _LINEAR_OVRS
+ ymint sb = sa;
+ if ((currentPos>>12)<((currentSampleLength>>12)-1))
+ sb = (ymint)(ymsample)(pCurrentMixSample[(currentPos>>12)+1]<<8);
+ ymint frac = currentPos&((1<<12)-1);
+ sa += (((sb-sa)*frac)>>12);
+#endif
+ *pWrite16++ = sa;
+
+ currentPos += currentPente;
+ if (currentPos>=currentSampleLength)
+ {
+ readNextBlockInfo();
+ if (bMusicOver) return;
+ }
+ }
+ while (--nbs);
+}
+
+void CYmMusic::ymTrackerDesInterleave(void)
+{
+unsigned char *a0,*a1,*a2;
+unsigned char *pNewBuffer;
+ymint step;
+ymu32 n1,n2;
+
+
+ if (attrib&A_STREAMINTERLEAVED)
+ {
+ a0 = pDataStream;
+ ymint size = sizeof(ymTrackerLine_t)*nbVoice*nbFrame;
+ pNewBuffer = (unsigned char*)malloc(size);
+ step = sizeof(ymTrackerLine_t)*nbVoice;
+ n1 = step;
+ a2 = pNewBuffer;
+ do
+ {
+ n2 = nbFrame;
+ a1 = a2;
+ do
+ {
+ *a1 = *a0++;
+ a1 += step;
+ }
+ while (--n2);
+ a2++;
+ }
+ while (--n1);
+ memcpy(pDataStream,pNewBuffer,size);
+ free(pNewBuffer);
+ attrib &= (~A_STREAMINTERLEAVED);
+ }
+}
+
+
+void CYmMusic::ymTrackerInit(ymint volMaxPercent)
+{
+ymint i,s;
+ymint vol;
+ymint scale;
+ymsample *pTab;
+
+
+
+ for (i=0;i<MAX_VOICE;i++)
+ ymTrackerVoice[i].bRunning = 0;
+
+ ymTrackerNbSampleBefore = 0;
+
+ scale = (256*volMaxPercent) / (nbVoice*100);
+ pTab = ymTrackerVolumeTable;
+
+ // Construit la table de volume.
+ for (vol=0;vol<64;vol++)
+ {
+ for (s=-128;s<128;s++)
+ {
+ *pTab++ = (s*(ymint)scale*vol)/64;
+ }
+ }
+
+ // Des-interleave si necessaire.
+ ymTrackerDesInterleave();
+
+}
+
+
+void CYmMusic::ymTrackerPlayer(ymTrackerVoice_t *pVoice)
+{
+ymint i;
+ymTrackerLine_t *pLine;
+
+
+ pLine = (ymTrackerLine_t*)pDataStream;
+ pLine += (currentFrame*nbVoice);
+ for (i=0;i<nbVoice;i++)
+ {
+ ymint n;
+ ymint freq =
+ pVoice[i].sampleFreq = ((ymint)pLine->freqHigh<<8) | pLine->freqLow;
+ if (pVoice[i].sampleFreq)
+ {
+ pVoice[i].sampleVolume = pLine->volume&63;
+ pVoice[i].bLoop = (pLine->volume&0x40);
+ n = pLine->noteOn;
+ if (n != 0xff) // Note ON.
+ {
+ pVoice[i].bRunning = 1;
+ pVoice[i].pSample = pDrumTab[n].pData;
+ pVoice[i].sampleSize = pDrumTab[n].size;
+ pVoice[i].repLen = pDrumTab[n].repLen;
+ pVoice[i].samplePos = 0;
+ }
+ }
+ else
+ {
+ pVoice[i].bRunning = 0;
+ }
+ pLine++;
+ }
+
+ currentFrame++;
+ if (currentFrame >= nbFrame)
+ {
+ if (!bLoop)
+ {
+ bMusicOver = YMTRUE;
+ }
+ currentFrame = 0;
+ }
+}
+
+
+void CYmMusic::ymTrackerVoiceAdd(ymTrackerVoice_t *pVoice,ymsample *pBuffer,ymint nbs)
+{
+ymsample *pVolumeTab;
+ymu8 *pSample;
+ymu32 samplePos;
+ymu32 sampleEnd;
+ymu32 sampleInc;
+ymu32 repLen;
+double step;
+
+
+ if (!(pVoice->bRunning)) return;
+
+ pVolumeTab = &ymTrackerVolumeTable[256*(pVoice->sampleVolume&63)];
+ pSample = pVoice->pSample;
+ samplePos = pVoice->samplePos;
+
+ step = (double)(pVoice->sampleFreq<<YMTPREC);
+ step *= (double)(1<<ymTrackerFreqShift);
+ step /= (double)replayRate;
+ sampleInc = (ymu32)step;
+
+ sampleEnd = (pVoice->sampleSize<<YMTPREC);
+ repLen = (pVoice->repLen<<YMTPREC);
+ if (nbs>0) do
+ {
+ ymint va = pVolumeTab[pSample[samplePos>>YMTPREC]];
+#ifdef _LINEAR_OVRS
+ ymint vb = va;
+ if (samplePos < (sampleEnd-(1<<YMTPREC)))
+ ymint vb = pVolumeTab[pSample[(samplePos>>YMTPREC)+1]];
+ ymint frac = samplePos & ((1<<YMTPREC)-1);
+ va += (((vb-va)*frac)>>YMTPREC);
+#endif
+ (*pBuffer++) += va;
+
+ samplePos += sampleInc;
+ if (samplePos>=sampleEnd)
+ {
+ if (pVoice->bLoop)
+ {
+ samplePos -= repLen;
+ }
+ else
+ {
+ pVoice->bRunning = 0;
+ return;
+ }
+ }
+ }
+ while (--nbs);
+ pVoice->samplePos = samplePos;
+}
+
+void CYmMusic::ymTrackerUpdate(ymsample *pBuffer,ymint nbSample)
+{
+ymint i;
+ymint _nbs;
+
+ // Clear les buffers.
+ memset(pBuffer,0,sizeof(ymsample)*nbSample);
+ if (bMusicOver) return;
+
+ do
+ {
+ if (ymTrackerNbSampleBefore == 0)
+ {
+ // Lit la partition ymTracker
+ ymTrackerPlayer(ymTrackerVoice);
+ if (bMusicOver) return;
+ ymTrackerNbSampleBefore = YMTNBSRATE;
+ }
+ _nbs = ymTrackerNbSampleBefore; // nb avant playerUpdate.
+ if (_nbs>nbSample) _nbs = nbSample;
+ ymTrackerNbSampleBefore -= _nbs;
+ if (_nbs>0)
+ {
+ // Genere les samples.
+ for (i=0;i<nbVoice;i++)
+ {
+ ymTrackerVoiceAdd(&ymTrackerVoice[i],pBuffer,_nbs);
+ }
+ pBuffer += _nbs;
+ nbSample -= _nbs;
+ }
+ }
+ while (nbSample>0);
+}
diff --git a/lib/stsound/StSoundLibrary/YmMusic.h b/lib/stsound/StSoundLibrary/YmMusic.h
new file mode 100644
index 0000000000..cb59af39d5
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/YmMusic.h
@@ -0,0 +1,261 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ YM Music Driver
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+
+#ifndef __YMMUSIC__
+#define __YMMUSIC__
+
+#include "YmTypes.h"
+#include "StSoundLibrary.h"
+#include "Ym2149Ex.h"
+#include "Ymload.h"
+#include "digidrum.h"
+
+#define MAX_DIGIDRUM 128
+
+#define YMTPREC 16
+#define MAX_VOICE 8
+#define PC_DAC_FREQ 44100
+#define YMTNBSRATE (PC_DAC_FREQ/50)
+
+typedef enum
+{
+ YM_V2,
+ YM_V3,
+ YM_V4,
+ YM_V5,
+ YM_V6,
+ YM_VMAX,
+
+ YM_TRACKER1=32,
+ YM_TRACKER2,
+ YM_TRACKERMAX,
+
+ YM_MIX1=64,
+ YM_MIX2,
+ YM_MIXMAX,
+} ymFile_t;
+
+typedef struct
+{
+ ymu32 sampleStart;
+ ymu32 sampleLength;
+ ymu16 nbRepeat;
+ ymu16 replayFreq;
+} mixBlock_t;
+
+typedef struct
+{
+ ymu32 size;
+ ymu8 * pData;
+ ymu32 repLen;
+} digiDrum_t;
+
+typedef struct
+{
+ ymint nbVoice;
+ ymu32 nbVbl;
+ ymu8 * pDataBufer;
+ ymu32 currentVbl;
+ ymu32 flags;
+ ymbool bLoop;
+} ymTrackerPartoche_t;
+
+
+typedef struct
+{
+ ymu8 * pSample;
+ ymu32 sampleSize;
+ ymu32 samplePos;
+ ymu32 repLen;
+ yms32 sampleVolume;
+ ymu32 sampleFreq;
+ ymbool bLoop;
+ ymbool bRunning;
+} ymTrackerVoice_t;
+
+typedef struct
+{
+ ymu8 noteOn;
+ ymu8 volume;
+ ymu8 freqHigh;
+ ymu8 freqLow;
+} ymTrackerLine_t;
+
+
+enum
+{
+ A_STREAMINTERLEAVED = 1,
+ A_DRUMSIGNED = 2,
+ A_DRUM4BITS = 4,
+ A_TIMECONTROL = 8,
+ A_LOOPMODE = 16,
+};
+
+
+class CYmMusic
+{
+
+public:
+ CYmMusic(ymint _replayRate=44100);
+ ~CYmMusic();
+
+ ymbool load(const char *pName);
+ ymbool loadMemory(void *pBlock,ymu32 size);
+
+ void unLoad(void);
+ ymbool isSeekable(void);
+ ymbool update(ymsample *pBuffer,ymint nbSample);
+ ymu32 getPos(void);
+ ymu32 getMusicTime(void);
+ ymu32 setMusicTime(ymu32 time);
+ void play(void);
+ void pause(void);
+ void stop(void);
+ void setVolume(ymint volume);
+ int getAttrib(void);
+ void getMusicInfo(ymMusicInfo_t *pInfo);
+ void setLoopMode(ymbool bLoop);
+ char *getLastError(void);
+ int readYmRegister(ymint reg) { return ymChip.readRegister(reg); }
+
+//-------------------------------------------------------------
+// WAVE Generator
+//-------------------------------------------------------------
+ int waveCreate(char *fName);
+
+ ymbool bMusicOver;
+
+private:
+
+ ymbool checkCompilerTypes();
+
+ void setPlayerRate(int rate);
+ void setAttrib(int _attrib);
+ void setLastError(char *pError);
+ ymu8 *depackFile(void);
+ ymbool deInterleave(void);
+ void readYm6Effect(ymu8 *pReg,int code,int prediv,int count);
+ void player(void);
+ void setTimeControl(ymbool bFlag);
+
+
+ CYm2149Ex ymChip;
+ char *pLastError;
+ ymFile_t songType;
+ int nbFrame;
+ int loopFrame;
+ int currentFrame;
+ int nbDrum;
+ digiDrum_t *pDrumTab;
+ int musicTime;
+ ymu8 *pBigMalloc;
+ ymu8 *pDataStream;
+ ymbool bLoop;
+ ymint fileSize;
+ ymbool ymDecode(void);
+ ymint playerRate;
+ ymint attrib;
+ volatile ymbool bMusicOk;
+ volatile ymbool bPause;
+ ymint streamInc;
+ ymint innerSamplePos;
+ ymint replayRate;
+
+ ymchar *pSongName;
+ ymchar *pSongAuthor;
+ ymchar *pSongComment;
+ ymchar *pSongType;
+ ymchar *pSongPlayer;
+
+//-------------------------------------------------------------
+// ATARI Digi Mix Music.
+//-------------------------------------------------------------
+ void readNextBlockInfo(void);
+ void stDigitMix(signed short *pWrite16,int nbs);
+ ymint nbRepeat;
+ ymint nbMixBlock;
+ mixBlock_t *pMixBlock;
+ ymint mixPos;
+ ymu8 *pBigSampleBuffer;
+ ymu8 *pCurrentMixSample;
+ ymu32 currentSampleLength;
+ ymu32 currentPente;
+ ymu32 currentPos;
+
+//-------------------------------------------------------------
+// YM-Universal-Tracker
+//-------------------------------------------------------------
+ void ymTrackerInit(int volMaxPercent);
+ void ymTrackerUpdate(signed short *pBuffer,int nbSample);
+ void ymTrackerDesInterleave(void);
+ void ymTrackerPlayer(ymTrackerVoice_t *pVoice);
+ void ymTrackerVoiceAdd(ymTrackerVoice_t *pVoice,signed short *pBuffer,int nbs);
+
+ int nbVoice;
+ ymTrackerVoice_t ymTrackerVoice[MAX_VOICE];
+ int ymTrackerNbSampleBefore;
+ signed short ymTrackerVolumeTable[256*64];
+ int ymTrackerFreqShift;
+
+
+};
+
+/*
+ int version;
+ SD pos;
+ UD inc;
+ UD timeSec;
+ UD timeMin;
+ UD loopSec;
+ UD loopMin;
+ UD nbVbl;
+ UD vblRestart;
+ UD ymFreq;
+ UD playerFreq;
+ UB *pRegister;
+ UB *pFileBuffer;
+ UD fileSize;
+ UD attrib;
+ char *pSongName;
+ char *pSongComment;
+ char *pSongAuthor;
+ mixBlock_t *pMixBlock;
+ long nbMixBlock;
+ UD nbDrum;
+ digiDrum_t *pDrumTab;
+ int nbVoice;
+ ymu32 currentVbl;
+ int bTimeControl;
+ int timeTotal;
+ int ymtFreqShift;
+*/
+
+#endif
diff --git a/lib/stsound/StSoundLibrary/YmTypes.h b/lib/stsound/StSoundLibrary/YmTypes.h
new file mode 100644
index 0000000000..90b89831d9
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/YmTypes.h
@@ -0,0 +1,91 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Define YM types for multi-platform compilcation.
+ Change that file depending of your platform. Please respect the right size
+ for each type.
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#ifndef __YMTYPES__
+#define __YMTYPES__
+
+#define YM_INTEGER_ONLY
+
+//-----------------------------------------------------------
+// Platform specific stuff
+//-----------------------------------------------------------
+
+#if defined(_WIN32) || defined(__linux__)
+
+// These settings are ok for Windows 32bits platform.
+
+#ifdef YM_INTEGER_ONLY
+#ifdef __linux__
+#include <inttypes.h>
+typedef int64_t yms64;
+#else
+typedef __int64 yms64;
+#endif
+#else
+typedef float ymfloat;
+#endif
+
+typedef signed char yms8; // 8 bits signed integer
+typedef signed short yms16; // 16 bits signed integer
+typedef signed long yms32; // 32 bits signed integer
+
+typedef unsigned char ymu8; // 8 bits unsigned integer
+typedef unsigned short ymu16; // 16 bits unsigned integer
+typedef unsigned long ymu32; // 32 bits unsigned integer
+
+typedef int ymint; // Native "int" for speed purpose. StSound suppose int is signed and at least 32bits. If not, change it to match to yms32
+
+typedef char ymchar; // 8 bits char character (used for null terminated strings)
+
+#else
+
+ fail
+
+ Please make the right definition for your platform ( for 8,16,32 signed and unsigned integer)
+
+#endif
+
+#ifndef NULL
+#define NULL (0L)
+#endif
+
+//-----------------------------------------------------------
+// Multi-platform
+//-----------------------------------------------------------
+typedef int ymbool; // boolean ( theorically nothing is assumed for its size in StSound,so keep using int)
+typedef yms16 ymsample; // StSound emulator render mono 16bits signed PCM samples
+
+#define YMFALSE (0)
+#define YMTRUE (!YMFALSE)
+
+#endif
+
diff --git a/lib/stsound/StSoundLibrary/YmUserInterface.cpp b/lib/stsound/StSoundLibrary/YmUserInterface.cpp
new file mode 100644
index 0000000000..14f26e9a74
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/YmUserInterface.cpp
@@ -0,0 +1,132 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ ST-Sound library "C-like" interface wrapper
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+
+#include "YmMusic.h"
+#include "StSoundLibrary.h"
+
+
+// Static assert to check various type len
+
+YMMUSIC * ymMusicCreate()
+{
+ return (YMMUSIC*)(new CYmMusic);
+}
+
+
+ymbool ymMusicLoad(YMMUSIC *pMus,const char *fName)
+{
+ CYmMusic *pMusic = (CYmMusic*)pMus;
+ return pMusic->load(fName);
+}
+
+ymbool ymMusicLoadMemory(YMMUSIC *pMus,void *pBlock,ymu32 size)
+{
+ CYmMusic *pMusic = (CYmMusic*)pMus;
+ return pMusic->loadMemory(pBlock,size);
+}
+
+void ymMusicDestroy(YMMUSIC *pMus)
+{
+ CYmMusic *pMusic = (CYmMusic*)pMus;
+ delete pMusic;
+}
+
+ymbool ymMusicCompute(YMMUSIC *_pMus,ymsample *pBuffer,int nbSample)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ return pMusic->update(pBuffer,nbSample);
+}
+
+void ymMusicSetLoopMode(YMMUSIC *_pMus,ymbool bLoop)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ pMusic->setLoopMode(bLoop);
+}
+
+const char *ymMusicGetLastError(YMMUSIC *_pMus)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ return pMusic->getLastError();
+}
+
+int ymMusicGetRegister(YMMUSIC *_pMus,ymint reg)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ return pMusic->readYmRegister(reg);
+}
+
+void ymMusicGetInfo(YMMUSIC *_pMus,ymMusicInfo_t *pInfo)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ pMusic->getMusicInfo(pInfo);
+}
+
+void ymMusicPlay(YMMUSIC *_pMus)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ pMusic->play();
+}
+
+void ymMusicPause(YMMUSIC *_pMus)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ pMusic->pause();
+}
+
+void ymMusicStop(YMMUSIC *_pMus)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ pMusic->stop();
+}
+
+ymbool ymMusicIsSeekable(YMMUSIC *_pMus)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ return pMusic->isSeekable() ? YMTRUE : YMFALSE;
+}
+
+unsigned long ymMusicGetPos(YMMUSIC *_pMus)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ if (!pMusic->isSeekable())
+ return 0;
+
+ return pMusic->getPos();
+}
+
+void ymMusicSeek(YMMUSIC *_pMus,ymu32 timeInMs)
+{
+ CYmMusic *pMusic = (CYmMusic*)_pMus;
+ if (pMusic->isSeekable())
+ {
+ pMusic->setMusicTime(timeInMs);
+ }
+}
diff --git a/lib/stsound/StSoundLibrary/Ymload.cpp b/lib/stsound/StSoundLibrary/Ymload.cpp
new file mode 100644
index 0000000000..87b6bc5455
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/Ymload.cpp
@@ -0,0 +1,690 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Manage YM file depacking and parsing
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "YmMusic.h"
+#include "Depacker.h"
+
+static ymu16 ymVolumeTable[16] =
+{ 62,161,265,377,580,774,1155,1575,2260,3088,4570,6233,9330,13187,21220,32767};
+
+
+static void signeSample(ymu8 *ptr,yms32 size)
+{
+
+ if (size>0)
+ {
+ do
+ {
+ *ptr++ ^= 0x80;
+ }
+ while (--size);
+ }
+}
+
+char *mstrdup(char *in)
+{
+ char *out = (char*)malloc(strlen(in)+1);
+ if (out) strcpy(out,in);
+ return out;
+}
+
+ymu32 readMotorolaDword(ymu8 **ptr)
+{
+ymu32 n;
+ymu8 *p = *ptr;
+
+ n = (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3];
+ p+=4;
+ *ptr = p;
+ return n;
+}
+
+ymu16 readMotorolaWord(ymu8 **ptr)
+{
+ymu16 n;
+ymu8 *p = *ptr;
+
+ n = (p[0]<<8)|p[1];
+ p+=2;
+ *ptr = p;
+ return n;
+}
+
+ymchar *readNtString(ymchar **ptr)
+{
+ymchar *p;
+
+ p = mstrdup(*ptr);
+ (*ptr) += strlen(*ptr)+1;
+ return p;
+}
+
+yms32 ReadLittleEndian32(ymu8 *pLittle)
+{
+ yms32 v = ( (pLittle[0]<<0) |
+ (pLittle[1]<<8) |
+ (pLittle[2]<<16) |
+ (pLittle[3]<<24));
+
+ return v;
+}
+
+yms32 ReadBigEndian32(ymu8 *pBig)
+{
+ yms32 v = ( (pBig[0]<<24) |
+ (pBig[1]<<16) |
+ (pBig[2]<<8) |
+ (pBig[3]<<0));
+
+ return v;
+}
+
+unsigned char *CYmMusic::depackFile(void)
+ {
+ lzhHeader_t *pHeader;
+ ymu8 *pNew;
+ ymu8 *pSrc;
+
+ pHeader = (lzhHeader_t*)pBigMalloc;
+ if ((pHeader->size==0) || // NOTE: Endianness works because value is 0
+ (strncmp(pHeader->id,"-lh5-",5)))
+ { // Le fichier n'est pas compresse, on retourne l'original.
+ return pBigMalloc;
+ }
+
+ fileSize = (ymu32)-1;
+
+ if (pHeader->level != 0) // NOTE: Endianness works because value is 0
+ { // Compression LH5, header !=0 : Error.
+ free(pBigMalloc);
+ pBigMalloc = NULL;
+ setLastError("LHARC Header must be 0 !");
+ return NULL;
+ }
+
+ fileSize = ReadLittleEndian32((ymu8*)&pHeader->original);
+ pNew = (ymu8*)malloc(fileSize);
+ if (!pNew)
+ {
+ setLastError("MALLOC Failed !");
+ free(pBigMalloc);
+ pBigMalloc = NULL;
+ return NULL;
+ }
+
+ pSrc = pBigMalloc+sizeof(lzhHeader_t)+pHeader->name_lenght; // NOTE: Endianness works because name_lenght is a byte
+
+ pSrc += 2; // skip CRC16
+
+ if (!LzhDepackBlock(pSrc,pNew,fileSize))
+ {
+ setLastError("LH5 Depacking Error !");
+ free(pNew);
+ free(pBigMalloc);
+ pNew = NULL;
+ pBigMalloc = NULL;
+ return NULL;
+ }
+
+ // Tout est bon, le fichier est depack‚, on free le bloque
+ // pack‚ et on retourne le nouveau...
+ free(pBigMalloc);
+ return pNew;
+ }
+
+
+
+
+
+static ymint fileSizeGet(FILE *h)
+ {
+ ymint size;
+ ymint old;
+
+ old = ftell(h);
+ fseek(h,0,SEEK_END);
+ size = ftell(h);
+ fseek(h,old,SEEK_SET);
+ return size;
+ }
+
+
+ymbool CYmMusic::deInterleave(void)
+ {
+ yms32 nextPlane[32];
+ ymu8 *pW,*tmpBuff;
+ yms32 j,k;
+
+
+ if (attrib&A_STREAMINTERLEAVED)
+ {
+
+ tmpBuff = (ymu8*)malloc(nbFrame*streamInc);
+ if (!tmpBuff)
+ {
+ setLastError("Malloc error in deInterleave()\n");
+ return YMFALSE;
+ }
+
+ // Precalcul les offsets.
+ for (j=0;j<streamInc;j++) nextPlane[j] = nbFrame*j;
+
+ pW = tmpBuff;
+ for (j=0;j<nextPlane[1];j++)
+ {
+ for (k=0;k<streamInc;k++)
+ {
+ pW[k] = pDataStream[j + nextPlane[k]];
+ }
+ pW += streamInc;
+ }
+
+ free(pBigMalloc);
+ pBigMalloc = tmpBuff;
+ pDataStream = tmpBuff;
+
+ attrib &= (~A_STREAMINTERLEAVED);
+ }
+ return YMTRUE;
+ }
+
+
+
+ymbool CYmMusic::ymDecode(void)
+ {
+ ymu8 *pUD;
+ ymu8 *ptr;
+ ymint skip;
+ ymint i;
+ ymu32 sampleSize;
+ yms32 tmp;
+ ymu32 id;
+
+
+ id = ReadBigEndian32((unsigned char*)pBigMalloc);
+ switch (id)
+ {
+ case 'YM2!': // MADMAX specific.
+ songType = YM_V2;
+ nbFrame = (fileSize-4)/14;
+ loopFrame = 0;
+ ymChip.setClock(ATARI_CLOCK);
+ setPlayerRate(50);
+ pDataStream = pBigMalloc+4;
+ streamInc = 14;
+ nbDrum = 0;
+ setAttrib(A_STREAMINTERLEAVED|A_TIMECONTROL);
+ pSongName = "";
+ pSongAuthor = mstrdup("Unkonwn");
+ pSongComment = mstrdup("Converted by Leonard.");
+ pSongType = mstrdup("YM 2");
+ pSongPlayer = mstrdup("YM-Chip driver.");
+ break;
+
+ case 'YM3!': // Standart YM-Atari format.
+ songType = YM_V3;
+ nbFrame = (fileSize-4)/14;
+ loopFrame = 0;
+ ymChip.setClock(ATARI_CLOCK);
+ setPlayerRate(50);
+ pDataStream = pBigMalloc+4;
+ streamInc = 14;
+ nbDrum = 0;
+ setAttrib(A_STREAMINTERLEAVED|A_TIMECONTROL);
+ pSongName = ""; //mstrdup(tmpFName);
+ pSongAuthor = mstrdup("Unkonwn");
+ pSongComment = mstrdup("");
+ pSongType = mstrdup("YM 3");
+ pSongPlayer = mstrdup("YM-Chip driver.");
+ break;
+
+ case 'YM3b': // Standart YM-Atari format + Loop info.
+ pUD = (ymu8*)(pBigMalloc+fileSize-4);
+ songType = YM_V3;
+ nbFrame = (fileSize-4)/14;
+ loopFrame = ReadLittleEndian32(pUD);
+ ymChip.setClock(ATARI_CLOCK);
+ setPlayerRate(50);
+ pDataStream = pBigMalloc+4;
+ streamInc = 14;
+ nbDrum = 0;
+ setAttrib(A_STREAMINTERLEAVED|A_TIMECONTROL);
+ pSongName = ""; //mstrdup(tmpFName);
+ pSongAuthor = mstrdup("Unkonwn");
+ pSongComment = mstrdup("");
+ pSongType = mstrdup("YM 3b (loop)");
+ pSongPlayer = mstrdup("YM-Chip driver.");
+ break;
+
+ case 'YM4!': // Extended ATARI format.
+ setLastError("No more YM4! support. Use YM5! format.");
+ return YMFALSE;
+ break;
+
+ case 'YM5!': // Extended YM2149 format, all machines.
+ case 'YM6!': // Extended YM2149 format, all machines.
+ if (strncmp((const char*)(pBigMalloc+4),"LeOnArD!",8))
+ {
+ setLastError("Not a valid YM format !");
+ return YMFALSE;
+ }
+ ptr = pBigMalloc+12;
+ nbFrame = readMotorolaDword(&ptr);
+ setAttrib(readMotorolaDword(&ptr));
+ nbDrum = readMotorolaWord(&ptr);
+ ymChip.setClock(readMotorolaDword(&ptr));
+ setPlayerRate(readMotorolaWord(&ptr));
+ loopFrame = readMotorolaDword(&ptr);
+ skip = readMotorolaWord(&ptr);
+ ptr += skip;
+ if (nbDrum>0)
+ {
+ pDrumTab=(digiDrum_t*)malloc(nbDrum*sizeof(digiDrum_t));
+ for (i=0;i<nbDrum;i++)
+ {
+ pDrumTab[i].size = readMotorolaDword(&ptr);
+ if (pDrumTab[i].size)
+ {
+ pDrumTab[i].pData = (ymu8*)malloc(pDrumTab[i].size);
+ memcpy(pDrumTab[i].pData,ptr,pDrumTab[i].size);
+ if (attrib&A_DRUM4BITS)
+ {
+ ymu32 j;
+ ymu8 *pw = pDrumTab[i].pData;
+ for (j=0;j<pDrumTab[i].size;j++)
+ {
+ *pw++ = ymVolumeTable[(*pw)&15]>>7;
+ }
+ }
+ ptr += pDrumTab[i].size;
+ }
+ else
+ {
+ pDrumTab[i].pData = NULL;
+ }
+ }
+ attrib &= (~A_DRUM4BITS);
+ }
+ pSongName = readNtString((char**)&ptr);
+ pSongAuthor = readNtString((char**)&ptr);
+ pSongComment = readNtString((char**)&ptr);
+ songType = YM_V5;
+ if (id=='YM6!')
+ {
+ songType = YM_V6;
+ pSongType = mstrdup("YM 6");
+ }
+ else
+ {
+ pSongType = mstrdup("YM 5");
+ }
+ pDataStream = ptr;
+ streamInc = 16;
+ setAttrib(A_STREAMINTERLEAVED|A_TIMECONTROL);
+ pSongPlayer = mstrdup("YM-Chip driver.");
+ break;
+
+ case 'MIX1': // ATARI Remix digit format.
+
+ if (strncmp((const char*)(pBigMalloc+4),"LeOnArD!",8))
+ {
+ setLastError("Not a valid YM format !");
+ return YMFALSE;
+ }
+ ptr = pBigMalloc+12;
+ songType = YM_MIX1;
+ tmp = readMotorolaDword(&ptr);
+ setAttrib(0);
+ if (tmp&1) setAttrib(A_DRUMSIGNED);
+ sampleSize = readMotorolaDword(&ptr);
+ nbMixBlock = readMotorolaDword(&ptr);
+ pMixBlock = (mixBlock_t*)malloc(nbMixBlock*sizeof(mixBlock_t));
+ for (i=0;i<nbMixBlock;i++)
+ { // Lecture des block-infos.
+ pMixBlock[i].sampleStart = readMotorolaDword(&ptr);
+ pMixBlock[i].sampleLength = readMotorolaDword(&ptr);
+ pMixBlock[i].nbRepeat = readMotorolaWord(&ptr);
+ pMixBlock[i].replayFreq = readMotorolaWord(&ptr);
+ }
+ pSongName = readNtString((char**)&ptr);
+ pSongAuthor = readNtString((char**)&ptr);
+ pSongComment = readNtString((char**)&ptr);
+
+ pBigSampleBuffer = (unsigned char*)malloc(sampleSize);
+ memcpy(pBigSampleBuffer,ptr,sampleSize);
+
+ if (!(attrib&A_DRUMSIGNED))
+ {
+ signeSample(pBigSampleBuffer,sampleSize);
+ setAttrib(A_DRUMSIGNED);
+ }
+
+ mixPos = -1; // numero du block info.
+ pSongType = mstrdup("MIX1");
+ pSongPlayer = mstrdup("Digi-Mix driver.");
+
+ break;
+
+ case 'YMT1': // YM-Tracker
+ case 'YMT2': // YM-Tracker
+/*;
+; Format du YM-Tracker-1
+;
+; 4 YMT1
+; 8 LeOnArD!
+; 2 Nb voice
+; 2 Player rate
+; 4 Music lenght
+; 4 Music loop
+; 2 Nb digidrum
+; 4 Flags ; Interlace, signed, 8 bits, etc...
+; NT Music Name
+; NT Music author
+; NT Music comment
+; nb digi *
+*/
+ if (strncmp((const char*)(pBigMalloc+4),"LeOnArD!",8))
+ {
+ setLastError("Not a valid YM format !");
+ return YMFALSE;
+ }
+ ptr = pBigMalloc+12;
+ songType = YM_TRACKER1;
+ nbVoice = readMotorolaWord(&ptr);
+ setPlayerRate(readMotorolaWord(&ptr));
+ nbFrame= readMotorolaDword(&ptr);
+ loopFrame = readMotorolaDword(&ptr);
+ nbDrum = readMotorolaWord(&ptr);
+ attrib = readMotorolaDword(&ptr);
+ pSongName = readNtString((char**)&ptr);
+ pSongAuthor = readNtString((char**)&ptr);
+ pSongComment = readNtString((char**)&ptr);
+ if (nbDrum>0)
+ {
+ pDrumTab=(digiDrum_t*)malloc(nbDrum*sizeof(digiDrum_t));
+ for (i=0;i<(ymint)nbDrum;i++)
+ {
+ pDrumTab[i].size = readMotorolaWord(&ptr);
+ pDrumTab[i].repLen = pDrumTab[i].size;
+ if ('YMT2' == id)
+ {
+ pDrumTab[i].repLen = readMotorolaWord(&ptr); // repLen
+ readMotorolaWord(&ptr); // flag
+ }
+ if (pDrumTab[i].repLen>pDrumTab[i].size)
+ {
+ pDrumTab[i].repLen = pDrumTab[i].size;
+ }
+
+ if (pDrumTab[i].size)
+ {
+ pDrumTab[i].pData = (ymu8*)malloc(pDrumTab[i].size);
+ memcpy(pDrumTab[i].pData,ptr,pDrumTab[i].size);
+ ptr += pDrumTab[i].size;
+ }
+ else
+ {
+ pDrumTab[i].pData = NULL;
+ }
+ }
+ }
+
+ ymTrackerFreqShift = 0;
+ if ('YMT2' == id)
+ {
+ ymTrackerFreqShift = (attrib>>28)&15;
+ attrib &= 0x0fffffff;
+ pSongType = mstrdup("YM-T2");
+ }
+ else
+ {
+ pSongType = mstrdup("YM-T1");
+ }
+
+
+ pDataStream = ptr;
+ ymChip.setClock(ATARI_CLOCK);
+
+ ymTrackerInit(100); // 80% de volume maxi.
+ streamInc = 16;
+ setTimeControl(YMTRUE);
+ pSongPlayer = mstrdup("Universal Tracker");
+ break;
+
+ default:
+ setLastError("Unknow YM format !");
+ return YMFALSE;
+ break;
+ }
+
+ if (!deInterleave())
+ {
+ return YMFALSE;
+ }
+
+ return YMTRUE;
+ }
+
+
+ymbool CYmMusic::checkCompilerTypes()
+{
+ setLastError("Basic types size are not correct (check ymTypes.h)");
+
+ if (1 != sizeof(ymu8)) return YMFALSE;
+ if (1 != sizeof(yms8)) return YMFALSE;
+ if (1 != sizeof(ymchar)) return YMFALSE;
+
+ if (2 != sizeof(ymu16)) return YMFALSE;
+ if (2 != sizeof(yms16)) return YMFALSE;
+ if (4 != sizeof(ymu32)) return YMFALSE;
+ if (4 != sizeof(yms32)) return YMFALSE;
+
+ if (2 != sizeof(ymsample)) return YMFALSE;
+
+#ifdef YM_INTEGER_ONLY
+ if (8 != sizeof(yms64)) return YMFALSE;
+#endif
+
+ if (sizeof(ymint) < 4) return YMFALSE; // ymint should be at least 32bits
+
+ setLastError("");
+ return YMTRUE;
+}
+
+
+ymbool CYmMusic::load(const char *fileName)
+{
+FILE *in;
+
+
+ stop();
+ unLoad();
+
+ if (!checkCompilerTypes())
+ return YMFALSE;
+
+ in = fopen(fileName,"rb");
+ if (!in)
+ {
+ setLastError("File not Found");
+ return YMFALSE;
+ }
+
+ //---------------------------------------------------
+ // Allocation d'un buffer pour lire le fichier.
+ //---------------------------------------------------
+ fileSize = fileSizeGet(in);
+ pBigMalloc = (unsigned char*)malloc(fileSize);
+ if (!pBigMalloc)
+ {
+ setLastError("MALLOC Error");
+ fclose(in);
+ return YMFALSE;
+ }
+
+ //---------------------------------------------------
+ // Chargement du fichier complet.
+ //---------------------------------------------------
+ if (fread(pBigMalloc,fileSize,1,in)!=(size_t)1)
+ {
+ free(pBigMalloc);
+ setLastError("File is corrupted.");
+ fclose(in);
+ return YMFALSE;
+ }
+ fclose(in);
+
+ //---------------------------------------------------
+ // Transforme les donn‚es en donn‚es valides.
+ //---------------------------------------------------
+ pBigMalloc = depackFile();
+ if (!pBigMalloc)
+ {
+ return YMFALSE;
+ }
+
+ //---------------------------------------------------
+ // Lecture des donn‚es YM:
+ //---------------------------------------------------
+ if (!ymDecode())
+ {
+ free(pBigMalloc);
+ pBigMalloc = NULL;
+ return YMFALSE;
+ }
+
+ ymChip.reset();
+ bMusicOk = YMTRUE;
+ bPause = YMFALSE;
+ return YMTRUE;
+ }
+
+ymbool CYmMusic::loadMemory(void *pBlock,ymu32 size)
+{
+
+
+ stop();
+ unLoad();
+
+ if (!checkCompilerTypes())
+ return YMFALSE;
+
+ //---------------------------------------------------
+ // Allocation d'un buffer pour lire le fichier.
+ //---------------------------------------------------
+ fileSize = size;
+ pBigMalloc = (unsigned char*)malloc(fileSize);
+ if (!pBigMalloc)
+ {
+ setLastError("MALLOC Error");
+ return YMFALSE;
+ }
+
+ //---------------------------------------------------
+ // Chargement du fichier complet.
+ //---------------------------------------------------
+ memcpy(pBigMalloc,pBlock,size);
+
+ //---------------------------------------------------
+ // Transforme les donn‚es en donn‚es valides.
+ //---------------------------------------------------
+ pBigMalloc = depackFile();
+ if (!pBigMalloc)
+ {
+ return YMFALSE;
+ }
+
+ //---------------------------------------------------
+ // Lecture des donn‚es YM:
+ //---------------------------------------------------
+ if (!ymDecode())
+ {
+ free(pBigMalloc);
+ pBigMalloc = NULL;
+ return YMFALSE;
+ }
+
+ ymChip.reset();
+ bMusicOk = YMTRUE;
+ bPause = YMFALSE;
+ return YMTRUE;
+ }
+
+void myFree(void **pPtr)
+{
+ if (*pPtr) free(*pPtr);
+ *pPtr = NULL;
+}
+
+void CYmMusic::unLoad(void)
+{
+
+ bMusicOk = YMFALSE;
+ bPause = YMTRUE;
+ bMusicOver = YMFALSE;
+// myFree((void**)&pSongName);
+ myFree((void**)&pSongAuthor);
+ myFree((void**)&pSongComment);
+ myFree((void**)&pSongType);
+ myFree((void**)&pSongPlayer);
+ myFree((void**)&pBigMalloc);
+ if (nbDrum>0)
+ {
+ for (ymint i=0;i<nbDrum;i++)
+ {
+ myFree((void**)&pDrumTab[i].pData);
+ }
+ nbDrum = 0;
+ myFree((void**)&pDrumTab);
+ }
+ myFree((void**)&pBigSampleBuffer);
+ myFree((void**)&pMixBlock);
+
+}
+
+void CYmMusic::stop(void)
+{
+ bPause = YMTRUE;
+ currentFrame = 0;
+ mixPos = -1;
+}
+
+void CYmMusic::play(void)
+{
+ bPause = YMFALSE;
+}
+
+void CYmMusic::pause(void)
+{
+ bPause = YMTRUE;
+}
diff --git a/lib/stsound/StSoundLibrary/Ymload.h b/lib/stsound/StSoundLibrary/Ymload.h
new file mode 100644
index 0000000000..d364230a51
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/Ymload.h
@@ -0,0 +1,62 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Manage YM file depacking and parsing
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#ifndef __YMLOAD__
+#define __YMLOAD__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push)
+#pragma pack(1)
+
+typedef struct
+{
+ ymu8 size;
+ ymu8 sum;
+ char id[5];
+ ymu32 packed;
+ ymu32 original;
+ ymu8 reserved[5];
+ ymu8 level;
+ ymu8 name_lenght;
+} lzhHeader_t;
+
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/lib/stsound/StSoundLibrary/digidrum.cpp b/lib/stsound/StSoundLibrary/digidrum.cpp
new file mode 100644
index 0000000000..56047c1feb
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/digidrum.cpp
@@ -0,0 +1,2584 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Sample datas of some common YM music. ( YM2 format )
+ YM3 or greater uses sample data inside the music file.
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#include "YmTypes.h"
+
+static ymu8 sample00[631]={
+ 0xCC,0x84,0xB4,0x70,0x90,0x94,0x70,0x80,0x80,0xAC,
+ 0x58,0xFF,0x00,0x80,0x54,0x40,0x6C,0x78,0x94,0x7C,
+ 0x8C,0x58,0x84,0x08,0x4C,0x54,0x78,0xA8,0xDC,0xDC,
+ 0xFF,0xFF,0xF0,0xA4,0x70,0x44,0x3C,0x2C,0x14,0x00,
+ 0x00,0x00,0x00,0x1C,0x90,0xE4,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xF4,0xB4,0x8C,0x44,0x08,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x28,0x70,0xDC,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x78,0x38,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x38,0x84,0xEC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x84,0x50,0x18,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x04,0x50,0x98,0xDC,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xD8,0x8C,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x58,
+ 0xA0,0xDC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDC,0xC0,0x88,
+ 0x58,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x40,
+ 0x64,0x80,0xA8,0xD0,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xE4,0xBC,0x8C,0x68,0x48,0x20,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x04,0x2C,0x60,0x78,0xA0,0xC4,0xF0,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEC,0xC4,0x98,0x64,
+ 0x30,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x2C,0x50,
+ 0x74,0x8C,0xB0,0xCC,0xE8,0xFC,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
+ 0xF0,0xDC,0xC8,0xBC,0xB0,0x90,0x80,0x70,0x5C,0x58,
+ 0x48,0x38,0x38,0x28,0x24,0x1C,0x24,0x24,0x20,0x28,
+ 0x38,0x48,0x58,0x50,0x50,0x5C,0x60,0x5C,0x5C,0x5C,
+ 0x5C,0x60,0x5C,0x60,0x60,0x5C,0x54,0x5C,0x58,0x64,
+ 0x68,0x64,0x64,0x6C,0x74,0x7C,0x78,0x80,0x88,0x90,
+ 0x98,0x9C,0xA8,0xB8,0xB8,0xC0,0xC8,0xD0,0xD8,0xE0,
+ 0xE0,0xE4,0xDC,0xD4,0xD8,0xDC,0xD0,0xCC,0xC0,0xC4,
+ 0xBC,0xB0,0xA8,0x9C,0x98,0x94,0x90,0x7C,0x74,0x6C,
+ 0x64,0x4C,0x40,0x30,0x20,0x18,0x08,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0C,0x14,0x28,
+ 0x34,0x44,0x50,0x64,0x74,0x84,0x98,0x98,0xAC,0xC0,
+ 0xD0,0xD8,0xEC,0xF0,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xD8,
+ 0xD4,0xC8,0xBC,0x9C,0x8C,0x6C,0x74,0x50,0x40,0x34,
+ 0x24,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x24,
+ 0x38,0x4C,0x58,0x6C,0x80,0x90,0xA4,0xAC,0xBC,0xC8,
+ 0xD8,0xE4,0xE4,0xEC,0xF0,0xF4,0xFC,0xFC,0xFC,0xF8,
+ 0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xEC,0xEC,0xE4,0xE0,
+ 0xD8,0xD0,0xC4,0xBC,0xB0,0xA0,0x94,0x88,0x78,0x68,
+ 0x58,0x44,0x38,0x30,0x24,0x20,0x14,0x0C,0x08,0x00,
+ 0x00,0x00,0x04,0x0C,0x14,0x18,0x18,0x20,0x24,0x34,
+ 0x38,0x40,0x48,0x50,0x5C,0x60,0x6C,0x70,0x74,0x80,
+ 0x8C,0x90,0x98,0x9C,0xAC,0xB0,0xB8,0xC4,0xC0,0xBC,
+ 0xC0,0xC8,0xD0,0xCC,0xC8,0xC4,0xC0,0xC0,0xC0,0xB4,
+ 0xB4,0xAC,0xB0,0xA8,0xA4,0xA4,0x9C,0x98,0x94,0x94,
+ 0x94,0x94,0x94,0x8C,0x80,0x80,0x74,0x74,0x70,0x64,
+ 0x58,0x50,0x4C,0x4C,0x44,0x40,0x48,0x48,0x4C,0x4C,
+ 0x4C,0x58,0x60,0x68,0x6C,0x6C,0x74,0x7C,0x7C,0x84,
+ 0x84,0x88,0x8C,0x8C,0x88,0x88,0x84,0x84,0x84,0x7C,
+ 0x78,0x70,0x6C,0x68,0x64,0x64,0x64,0x60,0x68,0x6C,
+ 0x6C,0x70,0x7C,0x84,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample01[631]={
+ 0x97,0x81,0x90,0x7B,0x84,0x86,0x7B,0x80,0x80,0x8D,
+ 0x73,0xA7,0x58,0x80,0x72,0x6C,0x79,0x7D,0x86,0x7E,
+ 0x83,0x73,0x81,0x5A,0x6F,0x72,0x7D,0x8C,0x9C,0x9C,
+ 0xA7,0xA7,0xA2,0x8B,0x7B,0x6D,0x6A,0x65,0x5E,0x58,
+ 0x58,0x58,0x58,0x60,0x84,0x9F,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA4,0x90,0x83,0x6D,0x5A,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x64,0x7B,0x9C,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0x93,0x7D,0x69,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x69,0x81,0xA1,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0x93,0x81,0x71,0x5F,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x59,0x71,0x87,0x9C,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0x9B,0x83,0x6D,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x64,0x73,
+ 0x89,0x9C,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0x9C,0x93,0x82,
+ 0x73,0x60,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x5F,0x6C,
+ 0x77,0x80,0x8C,0x98,0xA5,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0x9F,0x92,0x83,0x78,0x6E,0x62,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x59,0x65,0x76,0x7D,0x89,0x95,0xA2,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA1,0x95,0x87,0x77,
+ 0x67,0x59,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x5B,0x65,0x71,
+ 0x7C,0x83,0x8E,0x97,0xA0,0xA6,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA5,
+ 0xA2,0x9C,0x96,0x92,0x8E,0x84,0x80,0x7B,0x74,0x73,
+ 0x6E,0x69,0x69,0x64,0x63,0x60,0x63,0x63,0x62,0x64,
+ 0x69,0x6E,0x73,0x71,0x71,0x74,0x76,0x74,0x74,0x74,
+ 0x74,0x76,0x74,0x76,0x76,0x74,0x72,0x74,0x73,0x77,
+ 0x78,0x77,0x77,0x79,0x7C,0x7E,0x7D,0x80,0x82,0x84,
+ 0x87,0x88,0x8C,0x91,0x91,0x93,0x96,0x98,0x9B,0x9D,
+ 0x9D,0x9F,0x9C,0x9A,0x9B,0x9C,0x98,0x97,0x93,0x95,
+ 0x92,0x8E,0x8C,0x88,0x87,0x86,0x84,0x7E,0x7C,0x79,
+ 0x77,0x6F,0x6C,0x67,0x62,0x5F,0x5A,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x59,0x5B,0x5E,0x64,
+ 0x68,0x6D,0x71,0x77,0x7C,0x81,0x87,0x87,0x8D,0x93,
+ 0x98,0x9B,0xA1,0xA2,0xA6,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA2,0x9B,
+ 0x9A,0x96,0x92,0x88,0x83,0x79,0x7C,0x71,0x6C,0x68,
+ 0x63,0x5F,0x5A,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x5A,0x5D,0x63,
+ 0x69,0x6F,0x73,0x79,0x80,0x84,0x8B,0x8D,0x92,0x96,
+ 0x9B,0x9F,0x9F,0xA1,0xA2,0xA4,0xA6,0xA6,0xA6,0xA5,
+ 0xA6,0xA6,0xA5,0xA5,0xA2,0xA2,0xA1,0xA1,0x9F,0x9D,
+ 0x9B,0x98,0x95,0x92,0x8E,0x89,0x86,0x82,0x7D,0x78,
+ 0x73,0x6D,0x69,0x67,0x63,0x62,0x5E,0x5B,0x5A,0x58,
+ 0x58,0x58,0x59,0x5B,0x5E,0x5F,0x5F,0x62,0x63,0x68,
+ 0x69,0x6C,0x6E,0x71,0x74,0x76,0x79,0x7B,0x7C,0x80,
+ 0x83,0x84,0x87,0x88,0x8D,0x8E,0x91,0x95,0x93,0x92,
+ 0x93,0x96,0x98,0x97,0x96,0x95,0x93,0x93,0x93,0x90,
+ 0x90,0x8D,0x8E,0x8C,0x8B,0x8B,0x88,0x87,0x86,0x86,
+ 0x86,0x86,0x86,0x83,0x80,0x80,0x7C,0x7C,0x7B,0x77,
+ 0x73,0x71,0x6F,0x6F,0x6D,0x6C,0x6E,0x6E,0x6F,0x6F,
+ 0x6F,0x73,0x76,0x78,0x79,0x79,0x7C,0x7E,0x7E,0x81,
+ 0x81,0x82,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x7E,
+ 0x7D,0x7B,0x79,0x78,0x77,0x77,0x77,0x76,0x78,0x79,
+ 0x79,0x7B,0x7E,0x81,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample02[490]={
+ 0x74,0xB4,0x96,0x64,0x3C,0x00,0x1E,0x70,0x00,0x40,
+ 0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCA,0x4C,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xDB,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xE4,0x5A,0x16,0x24,0x02,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0xC4,
+ 0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xED,0xFF,0x4A,0x06,0x1A,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x1E,0x84,0xBA,0xBE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFD,0xF9,0x6E,0x00,0x3A,0x0C,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,
+ 0x8A,0x58,0x60,0xDD,0xB3,0x40,0xFF,0xF3,0x90,0xFD,
+ 0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE9,
+ 0x8A,0xEB,0xB9,0x44,0x04,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x08,0x50,0x14,0x36,0xFD,0xD3,0xD9,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xCF,
+ 0xF5,0x92,0xFD,0xC2,0x10,0xA6,0x24,0x06,0x14,0x00,
+ 0x00,0x00,0x00,0x00,0x1C,0x00,0x72,0x18,0x6A,0xF1,
+ 0x80,0xFF,0xFF,0xFF,0xFF,0xF9,0xFF,0xF3,0xAA,0x88,
+ 0xA8,0xAA,0x8C,0x1A,0xCA,0x50,0xB9,0x00,0xD9,0x5E,
+ 0xA2,0x24,0x30,0x80,0x30,0x2E,0x00,0x0C,0x5E,0x06,
+ 0x08,0x70,0x58,0x00,0x9E,0xFD,0xA8,0xFF,0xFF,0xF7,
+ 0xFF,0xF5,0xFF,0xF5,0xFB,0xD5,0x70,0xC8,0xB6,0xA2,
+ 0x36,0xC3,0x00,0x72,0x30,0x2E,0x00,0x3E,0x30,0x2E,
+ 0x1C,0x74,0x56,0x32,0x5C,0xD5,0x9C,0x74,0xD0,0xDB,
+ 0xB5,0xB9,0xCB,0x9E,0xE0,0xFF,0x90,0xCC,0x98,0xE9,
+ 0x72,0xB4,0xB8,0x60,0xAE,0x6C,0x0C,0x44,0x4A,0x3C,
+ 0x36,0x60,0x10,0x2C,0x88,0x02,0x88,0x60,0x92,0x94,
+ 0xE1,0x6E,0xC4,0xE7,0xF7,0xF3,0x7A,0xCB,0xD0,0xAA,
+ 0x6E,0xC4,0xCD,0xB6,0x6A,0x90,0x44,0x34,0x5A,0x20,
+ 0x58,0x10,0x40,0x22,0x10,0x38,0x4A,0x42,0x5A,0x74,
+ 0x42,0x92,0xC6,0xBE,0xE1,0xDF,0xE7,0xFF,0xF5,0xD5,
+ 0xB1,0xC8,0xCA,0xD5,0x6E,0x6A,0x8A,0x40,0x52,0x22,
+ 0x72,0x48,0x44,0x3E,0x92,0x82,0x66,0xD2,0x88,0xD2,
+ 0xAC,0xA0,0x84,0x8A,0x8C,0x94,0xA3,0x86,0xE3,0x90,
+ 0x7A,0xE1,0x8E,0xE7,0xAC,0x7C,0xAC,0xCD,0x86,0x7A,
+ 0xA4,0x80,0x9A,0x3A,0x76,0x86,0x4E,0x50,0x94,0x4C,
+ 0x32,0x9E,0x70,0xA0,0x72,0x74,0x56,0xAE,0xB8,0x80,
+ 0xCA,0x82,0xA4,0x7C,0xEA,0xAA,0x84,0x32,0xD5,0xA2,
+ 0x9A,0x50,0x4A,0x6A,0x28,0x9A,0x18,0x16,0x78,0x82,
+ 0x94,0x94,0x9C,0x92,0x8E,0x7E,0x72,0x5A,0x88,0x44,
+ 0x98,0xA8,0x64,0xA0,0x66,0xA6,0x84,0x7E,0x8C,0x92,
+ 0xBC,0x92,0xB6,0x92,0xAA,0x5A,0x70,0x7A,0x66,0x7E,
+ 0x4E,0x62,0xAE,0x6A,0x82,0x84,0x54,0x88,0x80,0x94,
+ 0x78,0xBE,0xAC,0xA2,0xE1,0x8E,0xDD,0xD6,0xA6,0xAA,
+ 0x60,0xA2,0x86,0x90,0x78,0x5C,0x94,0x72,0x54,0xB2,
+ 0x6A,0x74,0x60,0x90,0x78,0x5A,0x9A,0x70,0x8C,0xA2,
+ 0x64,0x4C,0xA8,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample03[490]={
+ 0x7C,0x90,0x86,0x77,0x6A,0x58,0x61,0x7B,0x58,0x6C,
+ 0xA5,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0x97,0x6F,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x5B,0x9C,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0x9F,0x74,0x5E,0x63,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x64,0x95,
+ 0xA2,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA2,0xA7,0x6F,0x59,0x60,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x61,0x81,0x92,0x93,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA5,0x7A,0x58,0x6A,0x5B,
+ 0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x86,
+ 0x83,0x73,0x76,0x9D,0x8F,0x6C,0xA7,0xA3,0x84,0xA7,
+ 0xA2,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA0,
+ 0x83,0xA1,0x91,0x6D,0x59,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x58,0x5A,0x71,0x5E,0x68,0xA7,0x99,0x9B,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0x8E,0x98,
+ 0xA4,0x85,0xA7,0x94,0x5D,0x8B,0x63,0x59,0x5E,0x58,
+ 0x58,0x58,0x58,0x58,0x60,0x58,0x7B,0x5F,0x79,0xA3,
+ 0x80,0xA7,0xA7,0xA7,0xA7,0xA5,0xA7,0xA3,0x8D,0x82,
+ 0x8C,0x8D,0x83,0x60,0x97,0x71,0x91,0x58,0x9B,0x75,
+ 0x8A,0x63,0x67,0x80,0x67,0x66,0x58,0x5B,0x75,0x59,
+ 0x5A,0x7B,0x73,0x58,0x89,0xA7,0x8C,0xA7,0xA7,0xA5,
+ 0xA7,0xA4,0xA7,0xA4,0xA6,0x9A,0x7B,0x96,0x90,0x8A,
+ 0x68,0x94,0x58,0x7B,0x67,0x66,0x58,0x6B,0x67,0x66,
+ 0x60,0x7C,0x72,0x67,0x74,0x9A,0x88,0x7C,0x98,0x9C,
+ 0x90,0x91,0x97,0x89,0x9D,0xA7,0x84,0x97,0x87,0xA0,
+ 0x7B,0x90,0x91,0x76,0x8E,0x79,0x5B,0x6D,0x6F,0x6A,
+ 0x68,0x76,0x5D,0x65,0x82,0x58,0x82,0x76,0x85,0x86,
+ 0x9E,0x7A,0x95,0xA0,0xA5,0xA3,0x7E,0x97,0x98,0x8D,
+ 0x7A,0x95,0x98,0x90,0x79,0x84,0x6D,0x68,0x74,0x62,
+ 0x73,0x5D,0x6C,0x62,0x5D,0x69,0x6F,0x6C,0x74,0x7C,
+ 0x6C,0x85,0x95,0x93,0x9E,0x9D,0xA0,0xA7,0xA4,0x9A,
+ 0x8F,0x96,0x97,0x9A,0x7A,0x79,0x83,0x6C,0x71,0x62,
+ 0x7B,0x6E,0x6D,0x6B,0x85,0x80,0x77,0x99,0x82,0x99,
+ 0x8D,0x89,0x81,0x83,0x83,0x86,0x8A,0x81,0x9E,0x84,
+ 0x7E,0x9E,0x84,0xA0,0x8D,0x7E,0x8D,0x98,0x81,0x7E,
+ 0x8B,0x80,0x88,0x6A,0x7C,0x81,0x70,0x71,0x86,0x6F,
+ 0x67,0x89,0x7B,0x89,0x7B,0x7C,0x72,0x8E,0x91,0x80,
+ 0x97,0x80,0x8B,0x7E,0xA1,0x8D,0x81,0x67,0x9A,0x8A,
+ 0x88,0x71,0x6F,0x79,0x64,0x88,0x5F,0x5E,0x7D,0x80,
+ 0x86,0x86,0x88,0x85,0x84,0x80,0x7B,0x74,0x82,0x6D,
+ 0x87,0x8C,0x77,0x89,0x77,0x8B,0x81,0x80,0x83,0x85,
+ 0x92,0x85,0x90,0x85,0x8D,0x74,0x7B,0x7E,0x77,0x80,
+ 0x70,0x76,0x8E,0x79,0x80,0x81,0x72,0x82,0x80,0x86,
+ 0x7D,0x93,0x8D,0x8A,0x9E,0x84,0x9D,0x9A,0x8B,0x8D,
+ 0x76,0x8A,0x81,0x84,0x7D,0x74,0x86,0x7B,0x72,0x8F,
+ 0x79,0x7C,0x76,0x84,0x7D,0x74,0x88,0x7B,0x83,0x8A,
+ 0x77,0x6F,0x8C,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample04[699]={
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x90,0x94,0x94,0xE0,
+ 0x28,0xC0,0x00,0x34,0xFF,0xA4,0xFF,0x78,0xE4,0xC0,
+ 0x98,0x70,0xFF,0x30,0x7C,0x28,0x58,0x00,0xFF,0x00,
+ 0xFF,0x00,0x00,0x5C,0x64,0x00,0x94,0x38,0x00,0x8C,
+ 0x00,0x00,0x00,0x50,0x48,0x4C,0xBC,0xC8,0xF8,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0x9C,0xF8,0x44,0x3C,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x38,
+ 0x18,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,
+ 0xB8,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,0x00,
+ 0x00,0x00,0x00,0x00,0x68,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,0xCC,0x7C,0x38,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x4C,
+ 0x88,0xE8,0xE4,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,0xE8,0xAC,0x48,0x24,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
+ 0x3C,0x7C,0x98,0xD4,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,0xEC,0xC8,0xB4,0x9C,0x68,0x60,0x40,0x34,0x2C,
+ 0x0C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x08,0x1C,0x1C,
+ 0x20,0x50,0x58,0x64,0x7C,0x98,0x7C,0x90,0xA0,0xB4,
+ 0xC0,0xB8,0xC8,0xDC,0xE4,0xF0,0xDC,0xF4,0xF0,0xFC,
+ 0xFF,0xF0,0xF4,0xEC,0xE8,0xEC,0xE4,0xDC,0xF4,0xDC,
+ 0xD8,0xE4,0xCC,0xD8,0xCC,0xBC,0xA0,0xAC,0xA0,0xB4,
+ 0xA4,0xA4,0xA8,0x9C,0x90,0x84,0x74,0x64,0x6C,0x58,
+ 0x68,0x5C,0x5C,0x54,0x4C,0x40,0x4C,0x40,0x20,0x34,
+ 0x20,0x14,0x20,0x20,0x10,0x1C,0x18,0x18,0x18,0x18,
+ 0x20,0x20,0x18,0x18,0x28,0x24,0x38,0x40,0x34,0x3C,
+ 0x4C,0x48,0x50,0x48,0x50,0x58,0x68,0x68,0x70,0x74,
+ 0x74,0x84,0x88,0x94,0x90,0x90,0x98,0xA0,0xA4,0xAC,
+ 0xA8,0xB8,0xB0,0xB4,0xB8,0xA8,0xB4,0xB8,0xB4,0xBC,
+ 0xC0,0xB4,0xB4,0xC4,0xC8,0xC8,0xC0,0xD0,0xBC,0xCC,
+ 0xC8,0xCC,0xCC,0xE0,0xD0,0xD8,0xDC,0xDC,0xE8,0xEC,
+ 0xEC,0xE0,0xDC,0xE0,0xD8,0xE0,0xDC,0xD0,0xC8,0xC8,
+ 0xC8,0xC8,0xBC,0xB4,0xB4,0xA0,0x98,0x88,0x8C,0x8C,
+ 0x80,0x7C,0x78,0x68,0x5C,0x5C,0x4C,0x48,0x40,0x40,
+ 0x34,0x34,0x34,0x34,0x2C,0x28,0x24,0x18,0x20,0x14,
+ 0x18,0x20,0x18,0x24,0x1C,0x18,0x28,0x1C,0x2C,0x2C,
+ 0x2C,0x3C,0x38,0x30,0x40,0x38,0x44,0x48,0x4C,0x48,
+ 0x54,0x50,0x5C,0x64,0x64,0x70,0x68,0x70,0x78,0x84,
+ 0x84,0x88,0x98,0x9C,0xAC,0xAC,0xAC,0xAC,0xB4,0xA8,
+ 0xC4,0xC4,0xBC,0xCC,0xC8,0xC0,0xC0,0xB8,0xB4,0xB4,
+ 0xB4,0xB0,0xB4,0xA8,0xA8,0xA0,0x94,0x94,0x8C,0x88,
+ 0x88,0x88,0x80,0x7C,0x78,0x70,0x6C,0x64,0x60,0x60,
+ 0x5C,0x5C,0x54,0x54,0x4C,0x48,0x40,0x40,0x40,0x3C,
+ 0x44,0x40,0x40,0x48,0x40,0x40,0x44,0x44,0x48,0x4C,
+ 0x58,0x60,0x5C,0x64,0x64,0x6C,0x6C,0x70,0x6C,0x70,
+ 0x78,0x88,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample05[505]={
+ 0x9F,0x74,0x71,0x47,0x4D,0x63,0x2C,0x2F,0x80,0x99,
+ 0xD9,0xC3,0xFA,0xB3,0xA7,0xA1,0x94,0x95,0x5A,0x69,
+ 0x02,0x29,0x0B,0x13,0x00,0x0B,0x0A,0x03,0x00,0x41,
+ 0x92,0xC4,0xE5,0xFF,0xFF,0xFF,0xEB,0x93,0xF9,0xB4,
+ 0xC3,0xFF,0xFF,0xFB,0xDD,0xF4,0xD7,0x88,0x52,0x22,
+ 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x4A,0x9E,0xE8,0xFF,0xFF,0xF9,0xFF,0xE1,
+ 0xFF,0xFC,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFB,0xAA,0x7E,0x0E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x09,0x1A,0x28,0x15,0x2D,0x23,0x15,0x0E,0x17,
+ 0x17,0x24,0x38,0x36,0xA0,0x75,0x95,0x96,0x8F,0x90,
+ 0x5B,0x4F,0x00,0x00,0x00,0x00,0x26,0x5E,0xA2,0xC7,
+ 0xEF,0xFE,0xFF,0xFF,0xFA,0xFF,0xF9,0xE3,0xFA,0xD7,
+ 0xFE,0x83,0x93,0xA1,0xC7,0x73,0xFF,0xDE,0xEC,0xFE,
+ 0xCF,0xB5,0x89,0x8A,0x51,0x95,0x42,0x9E,0x7B,0x84,
+ 0x93,0x8C,0x5C,0xA3,0x5C,0x46,0x16,0x0C,0x33,0x02,
+ 0x73,0x10,0x1A,0x00,0x2B,0x00,0x48,0x22,0x73,0x52,
+ 0x83,0xB2,0xA0,0x5C,0xB5,0x54,0x38,0x3D,0x00,0x0B,
+ 0x2A,0x14,0x1D,0x2B,0x07,0x0F,0x2B,0x16,0x26,0x4A,
+ 0x80,0xE2,0xDE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFA,0xFE,0xFF,0xFA,
+ 0xFF,0xFA,0xFB,0xF7,0x80,0x4E,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x20,0x00,0x1B,0x1B,0x2C,0x1E,0x3D,0x44,0x56,0x52,
+ 0x77,0x84,0x8B,0x8A,0x92,0x8D,0xBA,0xE8,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xF8,0xE0,0xD6,0xB4,0x7C,0x8A,
+ 0x33,0x4B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
+ 0x2A,0x52,0x1C,0x6B,0x5B,0x7A,0xAC,0xAD,0xA8,0xE2,
+ 0xA7,0xD9,0x90,0xD1,0x95,0xD4,0x8A,0xD2,0xB6,0xE4,
+ 0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xF9,
+ 0xC8,0x95,0x4F,0x3E,0x0F,0x00,0x09,0x02,0x03,0x00,
+ 0x29,0x05,0x12,0x17,0x0C,0x08,0x17,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x2A,0x22,0x40,
+ 0x47,0x93,0x64,0x9B,0xAC,0xB5,0xF2,0xD7,0xFD,0xFE,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xF9,0xC6,
+ 0xB3,0xE4,0xAA,0xBA,0x97,0xA6,0x44,0x60,0x1C,0x14,
+ 0x47,0x10,0x05,0x00,0x00,0x00,0x1C,0x07,0x00,0x0B,
+ 0x23,0x35,0x61,0x66,0xA6,0xA4,0x96,0x8E,0xA6,0xB0,
+ 0x5D,0xBD,0x7D,0x7C,0x57,0x77,0x52,0x62,0x69,0x6E,
+ 0x7B,0x62,0x97,0x80,0xA1,0x92,0xC2,0xA9,0xB0,0xC7,
+ 0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xF3,0xE7,0xC8,0xCB,0x91,0xAC,0x7D,0x67,
+ 0x41,0x30,0x04,0x00,0x00,0x00,0x00,0x00,0x09,0x00,
+ 0x00,0x34,0x0C,0x1E,0x34,0x1F,0x25,0x2B,0x18,0x12,
+ 0x09,0x1B,0x00,0x16,0x0F,0x39,0x1E,0x40,0x49,0x55,
+ 0x6E,0x7D,0x84,0xA2,0xBC,0xCA,0xC6,0xCA,0xC3,0xCA,
+ 0xB4,0xD7,0xAC,0x86,0x9F,0x7E,0x89,0x81,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample06[727]={
+ 0x8C,0x38,0x74,0xA4,0x64,0x98,0xD8,0x80,0x0C,0x44,
+ 0xB0,0xB4,0xA4,0xA4,0x54,0x14,0x48,0x84,0xC4,0xF8,
+ 0xFF,0x5C,0x00,0x00,0x5C,0xFF,0xFF,0x7C,0x8C,0x20,
+ 0x00,0xA8,0xF8,0x68,0x2C,0x8C,0xB0,0x14,0x00,0x74,
+ 0xFF,0xFF,0xE4,0x0C,0x00,0x60,0x5C,0x00,0x00,0x00,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0x9C,0x00,0x00,0x00,0x00,
+ 0x00,0x14,0xF8,0xF4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xA4,
+ 0xFF,0xFF,0xFF,0xFF,0xA8,0x10,0x00,0x00,0x00,0x70,
+ 0x8C,0x84,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
+ 0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,
+ 0xE4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0x70,0xB4,0xE4,0x84,0x3C,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0xBC,0xDC,
+ 0xE8,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0x84,0x34,0x30,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x34,0x58,0xAC,0x58,
+ 0xCC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE4,0xFF,
+ 0xFF,0xFF,0xFF,0x44,0x00,0x38,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x30,0xFF,0x38,0x00,0x00,
+ 0xDC,0xFF,0xFF,0x98,0x7C,0xB8,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0x8C,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x6C,0x00,0x00,0x64,0x6C,0x08,0x48,
+ 0x40,0x30,0x70,0x3C,0x68,0xFF,0x8C,0x1C,0x54,0x98,
+ 0x8C,0xC8,0xFF,0xFF,0xFF,0xBC,0xFF,0xFF,0xFF,0xFF,
+ 0x24,0x60,0xFF,0xF8,0x00,0x00,0x00,0x38,0x00,0x00,
+ 0x40,0x00,0x00,0x34,0xFF,0xFF,0x14,0x0C,0xFF,0x8C,
+ 0x00,0x10,0xFC,0xA8,0x54,0x00,0x68,0xFF,0xFF,0xFF,
+ 0xD4,0xA8,0xFF,0xFF,0xFF,0x8C,0x40,0xFF,0xFF,0x00,
+ 0x00,0x64,0x6C,0x00,0x00,0x00,0x00,0x00,0x38,0xF0,
+ 0x40,0x00,0x24,0x84,0xA4,0x00,0x00,0x98,0xFF,0x08,
+ 0x00,0xFF,0xFF,0xE4,0x94,0xFF,0xFF,0xFF,0x54,0xFF,
+ 0xFF,0xFF,0xE8,0xFF,0x78,0x00,0x00,0xF8,0xFF,0x00,
+ 0x00,0x70,0x3C,0x00,0x54,0x74,0x00,0x00,0x28,0xFF,
+ 0xEC,0x00,0x00,0x44,0xFF,0xFF,0x94,0x30,0xA8,0xFF,
+ 0xFF,0xFF,0x94,0xD8,0xFF,0xFF,0x80,0x00,0xBC,0xFF,
+ 0x30,0x00,0x34,0xFF,0x30,0x00,0x00,0xC8,0xC4,0x64,
+ 0x00,0x00,0xD4,0x74,0x00,0x00,0xDC,0xFC,0x00,0x00,
+ 0x00,0xFF,0xFF,0x14,0x00,0xFF,0xFF,0xFF,0xD8,0xFF,
+ 0xFF,0xFC,0xD8,0x5C,0x00,0x40,0xFF,0xFF,0x00,0x00,
+ 0x00,0xE4,0xFF,0x1C,0x00,0x7C,0xFF,0xA4,0x00,0x54,
+ 0xFF,0x08,0x00,0x00,0x3C,0x04,0x98,0x18,0x18,0xF0,
+ 0xFF,0xFF,0x14,0x4C,0xFF,0xFF,0xE4,0x14,0x00,0xA8,
+ 0xFF,0xFF,0x00,0x00,0x38,0xFF,0xFF,0x20,0x00,0xC4,
+ 0xFF,0x5C,0xA8,0xB0,0x28,0x50,0xFF,0x90,0x00,0x00,
+ 0xF8,0xA4,0x00,0x00,0x10,0xB0,0xCC,0xC4,0xFF,0xFF,
+ 0xEC,0x7C,0xFF,0xFF,0x98,0x9C,0xFF,0x8C,0x00,0x00,
+ 0xFF,0xFF,0x84,0x00,0x30,0xFF,0xFC,0x04,0x08,0xD0,
+ 0x90,0x00,0x00,0x44,0xB4,0x20,0x00,0x00,0x5C,0xF0,
+ 0x58,0x1C,0xFF,0xFF,0xFF,0x70,0x50,0xFF,0xFF,0xFF,
+ 0xC0,0x88,0x40,0x20,0xF4,0xFF,0x14,0x00,0x00,0x0C,
+ 0x7C,0xA0,0x68,0x00,0x00,0x40,0x94,0x38,0xA0,0x60,
+ 0x00,0x24,0xFF,0xF0,0x00,0x00,0x38,0xFF,0xFF,0x8C,
+ 0x2C,0x64,0xFF,0xFF,0xA4,0xD4,0x8C,0x00,0x2C,0xE4,
+ 0x8C,0x70,0x6C,0x00,0x44,0xA8,0x68,0x78,0xFF,0xEC,
+ 0x00,0x00,0xF0,0xFF,0x84,0x10,0x00,0x6C,0xFF,0x30,
+ 0x00,0xDC,0xFF,0x1C,0x08,0xFF,0xFF,0xA4,0x00,0x50,
+ 0xFF,0xD8,0x24,0x60,0xFC,0x70,0x00,0x64,0xFF,0xC0,
+ 0x00,0x0C,0xFF,0xEC,0xFF,0xFF,0x30,0x00,0xC4,0xFF,
+ 0x00,0x1C,0xE0,0x40,0x00,0x70,0xC0,0x9C,0x00,0x00,
+ 0xD4,0xFF,0x7C,0x00,0x3C,0xFF,0xD4,0x00,0x0C,0xFF,
+ 0xD4,0x00,0x10,0xF0,0xFF,0x14,0x00,0xFF,0xDC,0x74,
+ 0xFF,0xFF,0x10,0x00,0xFF,0xFF,0x00,0x00,0xC8,0xA4,
+ 0x00,0x34,0xD8,0xB8,0x00,0x00,0xA0,0xFF,0x78,0x00,
+ 0x68,0xFF,0x80,0x00,0xBC,0xBC,0x5C,0xB4,0x08,0x00,
+ 0xDC,0xFF,0x88,0x00,0x84,0xFF,0xA4,0x14,0x84,0x68,
+ 0x5C,0x10,0x00,0x70,0x34,0x00,0x00,0xC8,0xEC,0x40,
+ 0x00,0x00,0xD8,0xFF,0xFF,0x40,0x70,0xA0,0x78,0xDC,
+ 0xFF,0xE4,0x00,0x58,0xE8,0xFF,0xFF,0x94,0x18,0x70,
+ 0xFF,0xFF,0x98,0x00,0x8C,0xB4,0x20,0x14,0xBC,0xFF,
+ 0x48,0x00,0x00,0xFF,0xFF,0x00,0x00,0x94,0xFF,0xD0,
+ 0x00,0x1C,0xFF,0xFF,0x38,0x00,0xBC,0xFF,0x44,0x38,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample07[480]={
+ 0x3E,0xFD,0x13,0xFA,0x18,0xD5,0x1D,0xC1,0xC3,0xB5,
+ 0xE7,0x6F,0xDF,0x01,0xFF,0x70,0xAD,0xE9,0x27,0xEB,
+ 0x9F,0x2B,0xFD,0x38,0xB2,0xD9,0x0D,0xFF,0x4C,0x3B,
+ 0xFB,0x00,0xD3,0x9D,0x00,0xD3,0xDF,0x1C,0xED,0xCD,
+ 0x00,0xCB,0xB2,0x00,0x86,0xCE,0x10,0x13,0xD1,0x85,
+ 0x90,0x07,0xCD,0xE3,0x22,0x3D,0x8F,0x8A,0x33,0x7E,
+ 0xB4,0x3A,0x45,0xCE,0xA7,0x3A,0x47,0xE9,0xAF,0x08,
+ 0x49,0xAE,0xC0,0x4C,0x10,0x46,0xF1,0x38,0x03,0x89,
+ 0xEF,0x6A,0x11,0xC7,0xF3,0x43,0x00,0x2D,0xE5,0xF1,
+ 0x3E,0x00,0x17,0xA9,0xFF,0xEC,0x73,0x00,0x43,0xE5,
+ 0xF3,0x72,0x28,0x57,0xFF,0xC7,0x4E,0x22,0x5F,0xF3,
+ 0xFF,0xF1,0x65,0x0B,0x08,0xA9,0xFF,0xDF,0x66,0x24,
+ 0x18,0xA7,0xC6,0x9C,0xDC,0x9D,0xA3,0x56,0x00,0x00,
+ 0x63,0xD1,0xF8,0xFD,0x94,0x32,0x00,0x15,0x9E,0xF9,
+ 0xFD,0x91,0x5E,0x02,0x01,0x23,0x5A,0xDA,0xFE,0xFE,
+ 0xBC,0x3E,0x00,0x00,0x65,0xD6,0xFF,0xED,0xD8,0x4D,
+ 0x02,0x00,0x00,0x28,0xAD,0xFF,0xFF,0xFF,0xDB,0x69,
+ 0x29,0x00,0x01,0x00,0x03,0x8C,0xDF,0xFF,0xFF,0xFF,
+ 0xD5,0xC7,0x0B,0x37,0x00,0x00,0x21,0x4B,0x85,0xB3,
+ 0xB8,0xD0,0xFD,0x9E,0xBB,0xA2,0xE3,0xB1,0x60,0x25,
+ 0x30,0x02,0x28,0x58,0x3D,0x69,0xE0,0xFF,0xFF,0xD5,
+ 0x94,0x6D,0xA1,0x46,0x3C,0x00,0x00,0x00,0x04,0x79,
+ 0xB9,0xBF,0xD2,0xFF,0xFF,0xFF,0xFF,0xC5,0x76,0x52,
+ 0x5C,0x72,0x42,0x00,0x00,0x00,0x00,0x29,0x62,0xFF,
+ 0xE5,0xFF,0xFF,0xFE,0xD6,0xFE,0xE8,0xBF,0x96,0x81,
+ 0x79,0x62,0x2F,0x00,0x01,0x0E,0x1D,0x29,0x0D,0x27,
+ 0x48,0x97,0xCB,0xE7,0xEC,0xF6,0xF1,0xFF,0xF5,0x9C,
+ 0xA9,0xB2,0x9C,0x8A,0x6E,0x47,0x21,0x00,0x00,0x00,
+ 0x00,0x02,0x1C,0x47,0x5D,0x70,0x79,0x87,0xBF,0xCA,
+ 0xDF,0xDA,0xFD,0xFF,0xEF,0xFF,0xCF,0xF7,0xC5,0xDF,
+ 0xB3,0x7C,0x13,0x03,0x01,0x50,0x00,0x00,0x00,0x00,
+ 0x3C,0x69,0x82,0x65,0x62,0x71,0x8B,0x9D,0xBB,0x9F,
+ 0x9E,0x99,0xBA,0xAD,0xB5,0xE3,0xD5,0xF1,0xB2,0x9F,
+ 0x95,0x86,0x8F,0xBA,0xC9,0xDA,0xDA,0xDA,0x70,0x39,
+ 0x4C,0x58,0x6F,0x52,0x29,0x00,0x00,0x2D,0x0B,0x00,
+ 0x00,0x03,0x3F,0x82,0xA7,0xF5,0x98,0x99,0x8A,0xCD,
+ 0xB0,0x9B,0xDD,0xFE,0xFF,0xFF,0xF1,0xBA,0x92,0x6C,
+ 0x71,0x5A,0x91,0x4A,0x49,0x59,0x58,0x69,0x61,0x7A,
+ 0x75,0x67,0x62,0x81,0x92,0xD9,0xD9,0x82,0x34,0x03,
+ 0x28,0x3D,0x67,0x62,0x52,0x7B,0x6D,0x8F,0x90,0x81,
+ 0x7D,0x84,0x9D,0xC0,0xCE,0xBE,0x9C,0x93,0xA5,0xBA,
+ 0xA8,0xB7,0xAE,0x94,0x8F,0x82,0x6A,0x6D,0x51,0x5A,
+ 0x5F,0x69,0x84,0x95,0x8B,0x85,0x74,0x78,0x7A,0xA0,
+ 0x88,0x74,0x58,0x3B,0x34,0x09,0x00,0x00,0x0E,0x47,
+ 0x7E,0x94,0x8B,0x74,0x61,0x7B,0x80,0x90,0x90,0xA0,
+ 0xBD,0xCB,0xDA,0xC6,0xC1,0xA3,0x9F,0x92,0x98,0xA5,
+ 0x9C,0xAB,0xB0,0xAB,0xA8,0x96,0xB7,0xB5,0xC7,0xA4,
+ 0xB5,0xD0,0xD9,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample08[2108]={
+ 0x8A,0xAB,0x9D,0x3F,0x29,0x4A,0x68,0x97,0xF2,0x85,
+ 0x90,0x6D,0x68,0x68,0x71,0x82,0x88,0xEB,0x9A,0x59,
+ 0x30,0x00,0x33,0x41,0x84,0xA9,0xCC,0x92,0x81,0x60,
+ 0x77,0x79,0x80,0x95,0xB6,0xDA,0x92,0x6B,0x45,0x2E,
+ 0x02,0x51,0x63,0x8B,0xA1,0xA3,0xD6,0x92,0x92,0x83,
+ 0x76,0x7D,0x7C,0x7C,0x8B,0x88,0x7D,0x92,0xD5,0xAC,
+ 0x60,0x48,0x32,0x19,0x0C,0x49,0x5A,0x93,0x8D,0x93,
+ 0xA7,0xD6,0x90,0x88,0x78,0x7D,0x75,0x8D,0x7E,0x7E,
+ 0x8F,0x84,0x89,0x8B,0xE7,0xA9,0x61,0x53,0x36,0x28,
+ 0x1B,0x4E,0x5E,0x7C,0xA0,0x99,0xA5,0xCC,0xA8,0x9A,
+ 0x94,0x89,0x87,0x89,0x98,0x83,0x8C,0x8F,0x84,0x7A,
+ 0x8E,0xD4,0xD3,0x58,0x48,0x24,0x24,0x06,0x47,0x4E,
+ 0x82,0x97,0x89,0x9D,0xEC,0x83,0x95,0x8C,0x7C,0x7E,
+ 0x89,0x89,0x76,0x86,0x87,0x78,0x89,0xA2,0x86,0xB9,
+ 0x62,0x3D,0x1D,0x2D,0x10,0x4A,0x63,0x8A,0x98,0x98,
+ 0xB1,0xF3,0xA0,0xA9,0x8D,0x87,0x93,0x92,0x8F,0x90,
+ 0x94,0x90,0x81,0x8F,0xC8,0x54,0xA3,0x6A,0x36,0x28,
+ 0x2C,0x2B,0x38,0x6B,0x90,0x96,0xA5,0xEB,0x96,0x8D,
+ 0x81,0x7D,0x7D,0x89,0x8F,0x8F,0x87,0x91,0xB3,0xB1,
+ 0x63,0x54,0x30,0x03,0x4A,0x49,0x6C,0x86,0xB7,0x80,
+ 0x85,0x7C,0x69,0x80,0x79,0x89,0x89,0x95,0xBC,0xBE,
+ 0x6F,0x60,0x3F,0x06,0x5B,0x60,0x83,0x9C,0xC3,0x93,
+ 0x8B,0x86,0x6F,0x7A,0x7C,0x85,0x8E,0x97,0xBB,0xC5,
+ 0x6A,0x5C,0x34,0x04,0x4E,0x4E,0x80,0x97,0xB9,0x90,
+ 0x81,0x75,0x6A,0x73,0x7A,0x86,0x89,0x90,0xB5,0xBA,
+ 0x63,0x58,0x40,0x06,0x55,0x5E,0x82,0x91,0xBC,0x92,
+ 0x83,0x7D,0x69,0x7A,0x79,0x85,0x86,0x91,0xB8,0xB0,
+ 0x62,0x65,0x45,0x08,0x53,0x5E,0x8A,0x9A,0xEE,0x8F,
+ 0x86,0x6D,0x74,0x72,0x7E,0x88,0x92,0xC1,0xD6,0x70,
+ 0x56,0x33,0x13,0x53,0x5D,0x8C,0x98,0xDF,0x89,0x7E,
+ 0x66,0x70,0x79,0x79,0x87,0x8D,0xA3,0xC6,0x79,0x65,
+ 0x40,0x13,0x57,0x59,0x75,0x8D,0xA3,0xB2,0x84,0x83,
+ 0x6D,0x7A,0x81,0x80,0x8A,0x91,0xAA,0xCE,0x80,0x6C,
+ 0x43,0x12,0x50,0x54,0x76,0x95,0xAA,0xB4,0x86,0x82,
+ 0x67,0x6E,0x7A,0x80,0x90,0x90,0xA4,0xCA,0x77,0x69,
+ 0x3F,0x0F,0x4E,0x5B,0x79,0x8E,0xA5,0xB7,0x87,0x82,
+ 0x65,0x70,0x7A,0x83,0x85,0x92,0xA4,0xC5,0x7B,0x65,
+ 0x43,0x1C,0x48,0x59,0x70,0x95,0x9D,0xF0,0x8A,0x8A,
+ 0x70,0x70,0x7B,0x7C,0x8B,0x8D,0x90,0xA0,0xC6,0x81,
+ 0x66,0x44,0x28,0x37,0x55,0x6C,0x93,0x98,0xDE,0x80,
+ 0x88,0x71,0x74,0x79,0x76,0x8A,0x8A,0x90,0x90,0xEE,
+ 0xCB,0x63,0x52,0x32,0x05,0x50,0x5F,0x7D,0x90,0x9C,
+ 0xE7,0x80,0x8D,0x78,0x6B,0x77,0x7C,0x87,0x88,0x91,
+ 0x92,0xB8,0xC4,0x66,0x56,0x37,0x2A,0x31,0x54,0x70,
+ 0x92,0x8F,0xB2,0xBC,0x8E,0x8B,0x76,0x7E,0x7A,0x85,
+ 0x8B,0x88,0x8F,0x98,0xDF,0xB9,0x6D,0x49,0x2A,0x07,
+ 0x53,0x5C,0x80,0x95,0x97,0xEB,0x85,0x88,0x73,0x71,
+ 0x78,0x75,0x83,0x92,0x90,0x8D,0xCD,0xC1,0x57,0x57,
+ 0x3A,0x21,0x4A,0x5D,0x70,0x8B,0x9B,0xB0,0x8B,0x88,
+ 0x84,0x70,0x78,0x82,0x86,0x85,0x90,0x8F,0x8F,0xA1,
+ 0xC0,0x98,0x62,0x49,0x32,0x1A,0x4A,0x60,0x76,0x96,
+ 0x98,0x9E,0xE4,0x8B,0x8B,0x7A,0x79,0x7D,0x7D,0x85,
+ 0x86,0x85,0x85,0x89,0x8A,0xD1,0xB9,0x5C,0x3F,0x30,
+ 0x26,0x2D,0x56,0x74,0x8C,0x95,0xA4,0xC8,0x8F,0x96,
+ 0x84,0x79,0x81,0x80,0x88,0x89,0x8F,0x87,0x88,0x94,
+ 0xEA,0xD8,0x65,0x4B,0x30,0x27,0x15,0x51,0x66,0x90,
+ 0x91,0x99,0xB7,0xA6,0x97,0x8D,0x80,0x87,0x82,0x8C,
+ 0x8A,0x86,0x88,0x85,0x83,0x9C,0xA8,0x90,0x52,0x43,
+ 0x2F,0x24,0x20,0x5C,0x69,0x89,0x94,0x9B,0xA5,0xEC,
+ 0x95,0x94,0x80,0x8A,0x80,0x83,0x8D,0x85,0x85,0x89,
+ 0x87,0x85,0xC8,0xA8,0x5F,0x4C,0x3B,0x29,0x13,0x4C,
+ 0x5A,0x73,0x92,0x98,0xA1,0xB2,0xBA,0x96,0x94,0x87,
+ 0x88,0x84,0x8A,0x8B,0x82,0x84,0x88,0x80,0x7E,0x88,
+ 0xE5,0xC2,0x5C,0x47,0x2F,0x2C,0x30,0x09,0x58,0x6D,
+ 0x8D,0x93,0x9D,0xA9,0xAE,0xF5,0x9F,0x9F,0x87,0x8B,
+ 0x87,0x84,0x86,0x85,0x7E,0x76,0x78,0x76,0x7A,0x83,
+ 0xE2,0xBD,0x55,0x3E,0x2C,0x29,0x31,0x0E,0x5E,0x70,
+ 0x8F,0x9D,0xA5,0xAC,0xB7,0xF3,0xA7,0xA7,0x8C,0x88,
+ 0x85,0x7E,0x84,0x83,0x81,0x7D,0x7B,0x7B,0x75,0x80,
+ 0xE7,0xB9,0x43,0x40,0x2C,0x28,0x2D,0x05,0x4E,0x69,
+ 0x91,0x9A,0xA8,0xAD,0xAF,0xF7,0x99,0xA5,0x8D,0x89,
+ 0x89,0x82,0x83,0x80,0x7B,0x7B,0x76,0x73,0x78,0x82,
+ 0xDF,0x56,0x87,0x4D,0x27,0x2D,0x30,0x03,0x97,0x70,
+ 0x80,0x96,0xAA,0xA8,0xAF,0xF2,0x6F,0xCB,0x90,0x83,
+ 0x8D,0x80,0x88,0x84,0x80,0x80,0x78,0x71,0x79,0x7C,
+ 0xC8,0x8F,0x93,0x26,0x37,0x22,0x2A,0x05,0x6B,0x56,
+ 0x92,0x97,0xA7,0xAA,0xAE,0xEF,0xCA,0x7C,0xB3,0x71,
+ 0x9C,0x77,0x94,0x81,0x81,0x7D,0x76,0x74,0x76,0x78,
+ 0xB4,0xCD,0x81,0x35,0x18,0x34,0x1E,0x04,0x20,0xA9,
+ 0x60,0xB0,0xB1,0xA2,0xB8,0xE5,0xF6,0x63,0xAA,0x98,
+ 0x70,0x95,0x82,0x7C,0x84,0x7D,0x78,0x76,0x75,0x77,
+ 0xA1,0xD9,0x8F,0x50,0x03,0x33,0x17,0x00,0x92,0x6B,
+ 0x8B,0x9B,0xA5,0xAE,0xB4,0xD5,0xB2,0xA6,0x9F,0x87,
+ 0x87,0x81,0x87,0x83,0x80,0x7D,0x80,0x7A,0x75,0x78,
+ 0x78,0xC1,0x80,0x72,0x44,0x33,0x25,0x28,0x28,0x3C,
+ 0x6C,0x7D,0x9F,0xA1,0xAA,0xB2,0xB3,0xEF,0xA1,0xA9,
+ 0x8F,0x84,0x81,0x7D,0x7B,0x7D,0x7C,0x76,0x73,0x71,
+ 0x6D,0x71,0x75,0x9A,0x79,0xA8,0x4F,0x3B,0x2B,0x32,
+ 0x35,0x0E,0x6B,0x76,0x94,0xA7,0xAD,0xB8,0xB8,0xBF,
+ 0xED,0xA8,0xAF,0x95,0x85,0x84,0x7B,0x7B,0x75,0x76,
+ 0x6F,0x6A,0x6A,0x6A,0x6E,0x6D,0x74,0xD7,0x86,0x5A,
+ 0x40,0x31,0x2E,0x3A,0x3A,0x1A,0x6D,0x7C,0x9E,0xA9,
+ 0xB3,0xBA,0xBC,0xC0,0xF4,0xAD,0xAA,0x8D,0x84,0x7E,
+ 0x79,0x77,0x74,0x74,0x6D,0x69,0x6B,0x69,0x6B,0x70,
+ 0x77,0xD9,0x80,0x6D,0x43,0x36,0x31,0x38,0x3D,0x1E,
+ 0x71,0x78,0x94,0xAF,0xB4,0xBD,0xBF,0xC3,0xC7,0xF5,
+ 0xAE,0xA1,0x86,0x80,0x73,0x6F,0x6F,0x6E,0x67,0x65,
+ 0x63,0x5F,0x63,0x69,0x68,0x6C,0x7D,0xB4,0xC4,0x50,
+ 0x44,0x34,0x33,0x45,0x4B,0x11,0x77,0x85,0xA6,0xB4,
+ 0xBD,0xBF,0xBF,0xC4,0xD3,0xBF,0xAC,0xA0,0x7D,0x7D,
+ 0x74,0x6F,0x6C,0x69,0x66,0x62,0x60,0x63,0x63,0x6A,
+ 0x6C,0x6D,0x8F,0x82,0xE0,0x2D,0x47,0x3E,0x34,0x42,
+ 0x4F,0x0B,0x73,0x83,0xA7,0xAF,0xB8,0xBD,0xB9,0xBD,
+ 0xBE,0xCC,0xCA,0xA1,0x92,0x73,0x6F,0x67,0x63,0x61,
+ 0x64,0x60,0x5D,0x61,0x61,0x63,0x66,0x6B,0x72,0x73,
+ 0x7E,0x95,0xA6,0xCA,0x60,0x4D,0x46,0x3F,0x4B,0x54,
+ 0x5F,0x28,0x85,0x90,0xB2,0xB7,0xBE,0xC2,0xC0,0xBE,
+ 0xBE,0xC7,0xC3,0x9A,0x8C,0x6D,0x66,0x5D,0x5B,0x58,
+ 0x5A,0x58,0x55,0x56,0x58,0x5D,0x61,0x66,0x6D,0x73,
+ 0x77,0x88,0xC2,0xBB,0x5D,0x5C,0x50,0x3F,0x4F,0x57,
+ 0x5F,0x0E,0x87,0x92,0xB4,0xBF,0xC3,0xC6,0xC6,0xC5,
+ 0xC3,0xCA,0xF7,0xA2,0x86,0x6B,0x69,0x62,0x5F,0x5D,
+ 0x5B,0x5D,0x5A,0x57,0x59,0x5D,0x5E,0x66,0x71,0x71,
+ 0x79,0x88,0xF7,0x3C,0xCB,0x1E,0x5B,0x32,0x46,0x4F,
+ 0x54,0x1C,0x93,0x71,0xBA,0xAE,0xC0,0xC3,0xC1,0xC1,
+ 0xC1,0xC6,0xFD,0x83,0x98,0x7B,0x56,0x73,0x50,0x64,
+ 0x54,0x60,0x54,0x57,0x5E,0x5D,0x64,0x67,0x6D,0x73,
+ 0x7A,0x84,0xDB,0xC1,0x9B,0x56,0x31,0x3E,0x3D,0x49,
+ 0x57,0x65,0x25,0x8E,0xA0,0xBD,0xC3,0xCB,0xCA,0xC5,
+ 0xC5,0xBF,0xB9,0xBA,0xED,0x91,0x82,0x61,0x57,0x4E,
+ 0x4E,0x4F,0x4A,0x4E,0x4F,0x50,0x54,0x59,0x61,0x66,
+ 0x6D,0x77,0x78,0x82,0x89,0x8E,0xBD,0x81,0xDA,0x5C,
+ 0x58,0x52,0x4B,0x56,0x61,0x67,0x67,0x44,0x90,0x98,
+ 0xB8,0xBD,0xC3,0xC2,0xC2,0xC1,0xB9,0xB7,0xB6,0xF1,
+ 0x9D,0x8C,0x64,0x57,0x52,0x4D,0x4D,0x4C,0x4D,0x4B,
+ 0x4F,0x55,0x56,0x5E,0x67,0x6A,0x72,0x79,0x80,0x85,
+ 0x8B,0xB4,0x99,0xDA,0x7B,0x51,0x52,0x46,0x55,0x5C,
+ 0x67,0x6C,0x0D,0xCC,0x8E,0xB2,0xC3,0xC2,0xC8,0xC5,
+ 0xC5,0xC2,0xBB,0xBC,0xFA,0x65,0xAA,0x4F,0x63,0x48,
+ 0x4D,0x4B,0x49,0x4A,0x4F,0x4E,0x51,0x59,0x5F,0x66,
+ 0x6B,0x71,0x78,0x80,0x86,0x8E,0xA5,0xF4,0x79,0xA1,
+ 0x5A,0x32,0x4E,0x54,0x52,0x62,0x6D,0x2A,0x6D,0xD1,
+ 0x95,0xD0,0xC2,0xCD,0xC4,0xC2,0xC3,0xBD,0xBA,0xE0,
+ 0x81,0x87,0x6A,0x55,0x53,0x47,0x49,0x4A,0x47,0x4A,
+ 0x4E,0x51,0x59,0x5D,0x63,0x67,0x70,0x79,0x7E,0x85,
+ 0x8B,0x8F,0x96,0xE6,0x86,0xDD,0x5F,0x5B,0x48,0x4A,
+ 0x55,0x5D,0x68,0x6B,0x1E,0x8F,0x9A,0xB5,0xBE,0xC2,
+ 0xC8,0xC3,0xC1,0xBD,0xB9,0xB5,0xB0,0xED,0x91,0x7E,
+ 0x5A,0x51,0x46,0x46,0x46,0x45,0x49,0x4A,0x4E,0x53,
+ 0x58,0x61,0x67,0x72,0x75,0x7D,0x86,0x8A,0x8E,0x93,
+ 0x9D,0xEF,0x82,0xC2,0x3F,0x6F,0x48,0x55,0x5A,0x63,
+ 0x6D,0x6D,0x15,0xC2,0x9A,0xAA,0xC1,0xC2,0xC4,0xC2,
+ 0xBF,0xBA,0xB4,0xAF,0xAD,0xF6,0x40,0x96,0x3F,0x58,
+ 0x43,0x45,0x44,0x47,0x47,0x48,0x4F,0x54,0x59,0x61,
+ 0x68,0x6D,0x75,0x80,0x85,0x89,0x91,0x95,0xA0,0xF9,
+ 0x7A,0xAE,0x70,0x3A,0x47,0x58,0x56,0x60,0x6F,0x6F,
+ 0x1F,0xC4,0x7D,0xD7,0xC3,0xC4,0xCC,0xC7,0xC3,0xBF,
+ 0xBB,0xAF,0xA8,0xA8,0xC3,0x76,0x68,0x45,0x3E,0x39,
+ 0x37,0x37,0x39,0x42,0x43,0x47,0x51,0x59,0x60,0x6E,
+ 0x77,0x7C,0x84,0x8A,0x8F,0x92,0x96,0x9B,0x9A,0x9E,
+ 0xB8,0x84,0x95,0x9D,0x64,0x5A,0x48,0x55,0x56,0x63,
+ 0x6F,0x73,0x77,0x2A,0x8C,0xA1,0xC2,0xC7,0xCB,0xCC,
+ 0xC8,0xC0,0xBB,0xB6,0xAC,0x9F,0x99,0xC6,0x48,0x62,
+ 0x53,0x3B,0x35,0x30,0x31,0x30,0x3A,0x3E,0x41,0x49,
+ 0x53,0x5B,0x65,0x71,0x78,0x80,0x8A,0x90,0x92,0x97,
+ 0x9D,0x9F,0x9F,0xA2,0xEA,0x6F,0xC7,0x94,0x39,0x70,
+ 0x4B,0x58,0x61,0x63,0x76,0x77,0x6F,0x49,0xD3,0x8A,
+ 0xDD,0xB7,0xD0,0xC6,0xC1,0xBE,0xB6,0xB1,0xA5,0x9C,
+ 0x93,0xA0,0x70,0x61,0x4D,0x34,0x33,0x2C,0x2F,0x32,
+ 0x36,0x3B,0x3E,0x48,0x52,0x5A,0x67,0x71,0x78,0x82,
+ 0x89,0x91,0x96,0x9A,0x9F,0x9F,0xA0,0xA0,0x9D,0x9D,
+ 0x9D,0xC6,0x7A,0x8B,0xBC,0x5F,0x5B,0x48,0x4F,0x54,
+ 0x60,0x6B,0x74,0x7E,0x84,0x55,0xC0,0xB3,0xC5,0xD2,
+ 0xD2,0xD2,0xCA,0xC1,0xB8,0xAE,0xA2,0x99,0x8D,0x80,
+ 0x76,0x81,0x67,0x63,0x3B,0x1B,0x1E,0x1E,0x25,0x2A,
+ 0x33,0x3A,0x40,0x4E,0x58,0x65,0x71,0x7C,0x88,0x90,
+ 0x97,0x9F,0xA3,0xA7,0xA9,0xAB,0xAB,0xAA,0xA8,0xA4,
+ 0xA2,0xAC,0xF0,0x49,0xCB,0x7C,0x3A,0x6A,0x3E,0x5D,
+ 0x5D,0x68,0x70,0x79,0x82,0x86,0x33,0xA4,0xAE,0xC7,
+ 0xCC,0xCC,0xC8,0xBF,0xB8,0xAD,0xA2,0x97,0x8C,0x80,
+ 0x74,0x69,0x62,0xB3,0x3F,0x38,0x1E,0x1A,0x1B,0x1E,
+ 0x26,0x30,0x38,0x43,0x4F,0x58,0x65,0x71,0x7E,0x88,
+ 0x94,0x9C,0xA3,0xA7,0xAD,0xAF,0xAF,0xB0,0xAE,0xAD,
+ 0xA8,0xA6,0xA2,0x9E,0xA1,0xF1,0x82,0x8C,0x81,0x57,
+ 0x4F,0x4F,0x55,0x5B,0x68,0x6F,0x77,0x80,0x87,0x85,
+ 0x53,0xAF,0xC5,0xC2,0xC6,0xC9,0xBF,0xB8,0xAF,0xA4,
+ 0x9A,0x8F,0x84,0x76,0x6A,0x5F,0x59,0xA0,0x0C,0x4F,
+ 0x07,0x25,0x16,0x23,0x29,0x35,0x3F,0x48,0x55,0x60,
+ 0x6D,0x7A,0x86,0x90,0x9A,0xA2,0xA8,0xAC,0xB1,0xB3,
+ 0xB1,0xB0,0xAF,0xAB,0xA8,0xA6,0xA0,0x9D,0x9D,0xE1,
+ 0x7D,0x86,0xA7,0x3A,0x6C,0x42,0x58,0x59,0x63,0x6D,
+ 0x74,0x7B,0x86,0x8E,0x8F,0x3E,0xAB,0xAF,0xC3,0xC7,
+ 0xC1,0xBD,0xB3,0xA8,0x9B,0x93,0x89,0x79,0x6E,0x64,
+ 0x58,0x4D,0x48,0x43,0x80,0x20,0x2C,0x1E,0x1A,0x25,
+ 0x29,0x36,0x44,0x51,0x5B,0x68,0x74,0x80,0x8C,0x97,
+ 0x9F,0xA8,0xB1,0xB5,0xB6,0xB9,0xBA,0xB7,0xB5,0xB3,
+ 0xAF,0xA9,0xA4,0x9E,0x99,0x95,0x92,0x8C,0x8B,0x8A,
+ 0xD3,0x4F,0x94,0x8D,0x5A,0x41,0x56,0x44,0x5B,0x5C,
+ 0x68,0x70,0x77,0x80,0x85,0x8C,0x89,0x47,0xD5,0x93,
+ 0xCC,0xB6,0xB6,0xB3,0xA2,0x9D,0x8F,0x86,0x7D,0x72,
+ 0x67,0x5D,0x56,0x4D,0x46,0x46,0x74,0x50,0x18,0x37,
+ 0x23,0x2E,0x38,0x46,0x50,0x5D,0x6A,0x74,0x81,0x8B,
+ 0x95,0x9E,0xA6,0xAE,0xB4,0xB7,0xB8,0xB9,0xB7,0xB7,
+ 0xB1,0xAE,0xAA,0xA5,0xA1,0x9C,0x98,0x91,0x8F,0x8A,
+ 0x85,0x83,0x81,0x7E,0x7E,0x83,0xD5,0x7C,0x71,0x9D,
+ 0x39,0x5E,0x4B,0x4D,0x58,0x5F,0x69,0x70,0x78,0x80,
+ 0x84,0x8D,0x91,0x94,0x82,0x89,0x8F,0xB7,0xB9,0xAA,
+ 0xA9,0x9E,0x95,0x8B,0x80,0x77,0x6D,0x63,0x5C,0x54,
+ 0x4D,0x49,0x44,0x42,0x42,0x47,0x88,0x3F,0x3E,0x44,
+ 0x36,0x54,0x4E,0x67,0x6B,0x7E,0x85,0x90,0x9A,0xA1,
+ 0xA8,0xAD,0xB3,0xB9,0xBC,0xBD,0xBD,0xBC,0xB9,0xB5,
+ 0xB2,0xAD,0xAB,0xA4,0x9E,0x99,0x93,0x8F,0x89,0x85,
+ 0x81,0x7C,0x7A,0x77,0x76,0x74,0x72,0x73,0xA5,0x52,
+ 0x62,0x69,0x67,0x54,0x45,0x43,0x4D,0x54,0x5D,0x65,
+ 0x6D,0x75,0x7C,0x81,0x87,0x8C,0x8B,0x39,0xAF,0xAB,
+ 0xB2,0xAA,0xA8,0xA2,0x9A,0x90,0x87,0x81,0x79,0x71,
+ 0x68,0x61,0x5B,0x56,0x53,0x52,0x51,0x52,0x58,0xAF,
+ 0x35,0x47,0x46,0x4F,0x58,0x63,0x6E,0x79,0x85,0x8D,
+ 0x96,0x9F,0xA4,0xAB,0xB3,0xB6,0xB9,0xBB,0xBC,0xB8,
+ 0xB5,0xB5,0xAF,0xAB,0xA8,0xA2,0x9D,0x97,0x92,0x8A,
+ 0x85,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample09[4231]={
+ 0x7E,0x7E,0x7C,0x7E,0x7E,0x80,0x7A,0x7C,0x70,0x70,
+ 0x74,0x62,0x6A,0x62,0x74,0x6E,0x72,0x6C,0x6C,0x6C,
+ 0x64,0x62,0x5A,0x58,0x52,0x54,0x50,0x4E,0x4E,0x4E,
+ 0x4E,0x52,0x52,0x58,0x60,0x6C,0x76,0x86,0x90,0xA6,
+ 0xB4,0xBE,0xCE,0xD8,0xE2,0xE8,0xF4,0xEA,0xEE,0xE0,
+ 0xDC,0xD8,0xCA,0xC6,0xB0,0xB0,0x94,0x84,0x7A,0x66,
+ 0x62,0x4A,0x4C,0x4A,0x42,0x42,0x34,0x2E,0x3A,0x2C,
+ 0x38,0x24,0x30,0x2E,0x40,0x46,0x42,0x4A,0x54,0x56,
+ 0x6E,0x72,0x70,0x74,0x70,0x7E,0x70,0x7C,0x7E,0x82,
+ 0x82,0x92,0xA2,0xC0,0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFA,0xFF,0xF2,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,0xEC,0xDE,
+ 0xD8,0xDA,0xDA,0xE4,0xD2,0xDC,0xDC,0xC4,0xC8,0xA2,
+ 0x96,0x76,0x44,0x32,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x18,0x22,
+ 0x1A,0x22,0x16,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x08,0x0C,0x18,0x2E,0x2A,0x42,0x3A,0x4C,0x4A,
+ 0x50,0x54,0x50,0x64,0x58,0x7C,0x74,0x9C,0x9C,0xAA,
+ 0xAA,0xAC,0xAE,0xBC,0xCA,0xCA,0xDA,0xD4,0xE6,0xF0,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
+ 0xF4,0xF6,0xEA,0xE0,0xC6,0xB6,0x94,0x84,0x6E,0x5E,
+ 0x54,0x44,0x34,0x36,0x34,0x44,0x4A,0x5A,0x5E,0x62,
+ 0x68,0x6A,0x7A,0x7C,0x86,0x90,0x9E,0xAA,0xA6,0xB4,
+ 0xB0,0xC8,0xC8,0xD8,0xC8,0xD6,0xCC,0xCE,0xB0,0x9C,
+ 0x6E,0x60,0x46,0x44,0x36,0x36,0x30,0x3E,0x42,0x54,
+ 0x50,0x60,0x56,0x5C,0x4C,0x48,0x46,0x46,0x4A,0x58,
+ 0x5E,0x6A,0x70,0x7E,0x88,0x9C,0xA2,0xB8,0xBA,0xCE,
+ 0xC0,0xAE,0x86,0x68,0x4E,0x50,0x44,0x50,0x4E,0x5E,
+ 0x72,0x82,0x9A,0x98,0xA6,0x98,0x98,0x8C,0x7E,0x78,
+ 0x78,0x82,0x8C,0x96,0x9C,0x98,0xAC,0xAA,0xBA,0xB6,
+ 0xC4,0xBA,0xBA,0x8C,0x66,0x34,0x18,0x12,0x0E,0x1E,
+ 0x26,0x36,0x50,0x62,0x7C,0x80,0x8A,0x84,0x7E,0x78,
+ 0x66,0x64,0x6C,0x76,0x92,0x98,0xB4,0xB8,0xC4,0xCE,
+ 0xD6,0xE2,0xE0,0xDE,0xBC,0x7E,0x52,0x18,0x18,0x0A,
+ 0x12,0x20,0x26,0x4C,0x5C,0x78,0x80,0x7E,0x86,0x76,
+ 0x70,0x56,0x4A,0x4C,0x52,0x72,0x7E,0x9E,0xAC,0xC0,
+ 0xD0,0xDA,0xEE,0xEA,0xE2,0xA8,0x6A,0x40,0x18,0x1C,
+ 0x0C,0x18,0x2A,0x46,0x74,0x86,0x9C,0xA4,0xA6,0xAE,
+ 0x98,0x86,0x68,0x5A,0x64,0x68,0x82,0x94,0xB0,0xC8,
+ 0xD4,0xF0,0xEA,0xFF,0xF4,0xEA,0xA4,0x6C,0x34,0x1C,
+ 0x12,0x06,0x10,0x1A,0x42,0x68,0x7E,0x94,0x90,0x9C,
+ 0x96,0x84,0x6E,0x48,0x44,0x44,0x50,0x54,0x7E,0xA2,
+ 0xBC,0xCC,0xEA,0xFF,0xFF,0xFC,0xCC,0x6A,0x46,0x18,
+ 0x00,0x00,0x00,0x26,0x46,0x74,0x8C,0x96,0xB6,0xA4,
+ 0x8C,0x74,0x4C,0x48,0x26,0x2A,0x3A,0x5A,0x8A,0xA0,
+ 0xC8,0xE8,0xF6,0xFF,0xFF,0xFF,0xFF,0xBE,0x3C,0x2E,
+ 0x00,0x00,0x00,0x00,0x4A,0x72,0xA2,0xB2,0xC0,0xE0,
+ 0xA0,0x74,0x50,0x32,0x22,0x00,0x16,0x4C,0x68,0x96,
+ 0xAC,0xEA,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xB2,0x36,
+ 0x4C,0x00,0x00,0x00,0x00,0x60,0x64,0x8A,0xD0,0xD4,
+ 0xD6,0x9E,0x80,0x78,0x32,0x0C,0x0A,0x20,0x44,0x48,
+ 0x82,0xBE,0xD4,0xEA,0xFA,0xFF,0xFF,0xFF,0xFF,0xF2,
+ 0x52,0x5A,0x1E,0x00,0x00,0x00,0x2E,0x50,0x5A,0xBA,
+ 0xD6,0xCC,0xC6,0xA0,0xA0,0x5E,0x24,0x1E,0x18,0x18,
+ 0x30,0x54,0x9A,0xAC,0xD4,0xF8,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0x9A,0x62,0x62,0x00,0x00,0x00,0x00,0x1E,0x2C,
+ 0x72,0xCE,0xB4,0xC8,0xD6,0xC0,0x9E,0x5E,0x46,0x32,
+ 0x02,0x14,0x30,0x5A,0x82,0xA4,0xDA,0xFE,0xFF,0xFF,
+ 0xFF,0xFF,0xFE,0x84,0x9C,0x36,0x00,0x00,0x00,0x00,
+ 0x06,0x2A,0x78,0x9E,0xA4,0xE0,0xD2,0xC6,0xB2,0x7E,
+ 0x5E,0x2C,0x14,0x2A,0x22,0x50,0x7E,0xA6,0xCE,0xF6,
+ 0xFF,0xFF,0xFF,0xFF,0xAC,0xCE,0x70,0x00,0x0C,0x00,
+ 0x00,0x00,0x00,0x32,0x62,0x7C,0xB4,0xC0,0xD0,0xD2,
+ 0xAC,0xA0,0x64,0x4A,0x44,0x2E,0x48,0x6A,0x7C,0xAC,
+ 0xD2,0xFF,0xFF,0xFF,0xFF,0xD2,0xE0,0x58,0x46,0x2A,
+ 0x00,0x00,0x00,0x00,0x1C,0x3A,0x60,0x86,0x9E,0xC0,
+ 0xB6,0xBA,0xAA,0x86,0x80,0x6C,0x5A,0x7C,0x74,0x94,
+ 0xBC,0xD6,0xF0,0xFF,0xBA,0xF0,0xBC,0x4E,0x90,0x2E,
+ 0x04,0x2C,0x04,0x0C,0x30,0x36,0x4A,0x62,0x90,0x7A,
+ 0xA0,0xAC,0x84,0x96,0x94,0x6C,0x88,0x8C,0x8A,0xA2,
+ 0xC0,0xD6,0xE2,0xFF,0xAA,0xDC,0xC4,0x3C,0x94,0x32,
+ 0x04,0x34,0x14,0x02,0x40,0x34,0x52,0x54,0x9A,0x6E,
+ 0x96,0xAA,0x7A,0x8A,0x9C,0x5A,0x90,0x86,0x86,0xA0,
+ 0xBE,0xBC,0xE8,0xFA,0xD8,0xB4,0xFF,0x56,0x82,0x74,
+ 0x0A,0x28,0x32,0x00,0x2A,0x30,0x36,0x4A,0x7C,0x72,
+ 0x88,0xA6,0x8E,0x86,0xAA,0x70,0x84,0x8C,0x84,0x90,
+ 0xB4,0xAC,0xD4,0xE6,0xFA,0x98,0xFC,0xAE,0x4C,0xB8,
+ 0x2C,0x1E,0x50,0x06,0x10,0x38,0x26,0x32,0x58,0x76,
+ 0x50,0xA8,0x8A,0x76,0xB0,0x80,0x7E,0xA2,0x7E,0x98,
+ 0xAE,0xB2,0xC4,0xDE,0xFA,0xB4,0xC0,0xF4,0x2E,0xBA,
+ 0x5A,0x16,0x54,0x26,0x02,0x3E,0x20,0x32,0x40,0x74,
+ 0x4C,0x8A,0x94,0x74,0xA2,0x96,0x72,0xAA,0x80,0x92,
+ 0xA0,0xAE,0xB0,0xDA,0xDA,0xF8,0x9C,0xFC,0x94,0x68,
+ 0xB8,0x26,0x4A,0x44,0x0E,0x28,0x2C,0x28,0x2E,0x58,
+ 0x5A,0x56,0x9E,0x72,0x90,0xA4,0x7A,0x9C,0x92,0x88,
+ 0x9C,0xA0,0xAE,0xC4,0xD4,0xF4,0xC2,0xC4,0xF2,0x40,
+ 0xCA,0x4E,0x36,0x58,0x22,0x1A,0x34,0x26,0x2E,0x3C,
+ 0x68,0x44,0x8A,0x82,0x74,0xA8,0x88,0x86,0xA4,0x80,
+ 0x9E,0x96,0xAE,0xAC,0xD4,0xD2,0xF0,0xA0,0xFE,0x92,
+ 0x7A,0xB0,0x2A,0x5E,0x3A,0x24,0x24,0x36,0x2A,0x28,
+ 0x5E,0x46,0x5C,0x92,0x60,0x98,0x92,0x84,0x9A,0x90,
+ 0x90,0x98,0xA4,0xA8,0xBE,0xD2,0xDA,0xDA,0xA8,0xFC,
+ 0x5E,0xAC,0x76,0x3A,0x5A,0x30,0x2C,0x2A,0x36,0x2A,
+ 0x36,0x60,0x40,0x76,0x7A,0x6E,0x98,0x86,0x8C,0x98,
+ 0x8E,0x9A,0x98,0xB0,0xA8,0xCE,0xCE,0xE8,0xBA,0xC8,
+ 0xD4,0x5A,0xC0,0x4E,0x52,0x4E,0x32,0x28,0x30,0x3A,
+ 0x22,0x48,0x58,0x3C,0x8C,0x64,0x7C,0x94,0x7E,0x90,
+ 0x90,0x90,0x96,0x9C,0xAE,0xA2,0xDA,0xBC,0xEE,0xAC,
+ 0xD0,0xC2,0x64,0xC0,0x42,0x60,0x50,0x30,0x34,0x34,
+ 0x36,0x2A,0x4A,0x52,0x44,0x88,0x62,0x88,0x90,0x86,
+ 0x94,0x90,0x92,0x96,0x9A,0xAE,0x9E,0xD0,0xBA,0xDC,
+ 0xBE,0xB6,0xD0,0x66,0xB0,0x62,0x4E,0x64,0x2E,0x3E,
+ 0x32,0x3A,0x30,0x3E,0x58,0x46,0x72,0x78,0x72,0x98,
+ 0x84,0x8A,0x90,0x8E,0x92,0x98,0xA6,0x9C,0xB0,0xC8,
+ 0xB0,0xE2,0x96,0xD0,0x9E,0x70,0xAE,0x48,0x68,0x56,
+ 0x36,0x4C,0x32,0x46,0x30,0x48,0x5C,0x46,0x86,0x6E,
+ 0x7C,0x94,0x78,0x96,0x7E,0x90,0x94,0x8C,0xA6,0x98,
+ 0xAE,0xB4,0xB8,0xD0,0xA4,0xB4,0xC0,0x68,0xAA,0x6E,
+ 0x58,0x68,0x48,0x46,0x3C,0x46,0x40,0x36,0x6C,0x4C,
+ 0x6E,0x86,0x6A,0x8A,0x8C,0x78,0x8C,0x96,0x7E,0x90,
+ 0xA8,0x86,0xA4,0xB2,0xA6,0xB4,0xCA,0xAC,0x9C,0xC6,
+ 0x82,0x80,0x90,0x5E,0x54,0x58,0x42,0x38,0x40,0x52,
+ 0x36,0x5E,0x72,0x56,0x80,0x8C,0x66,0x90,0x90,0x6C,
+ 0x94,0x86,0x84,0x92,0x96,0x9A,0x90,0xAE,0xA2,0xA6,
+ 0xC4,0xAE,0x9C,0xBC,0x94,0x72,0x90,0x58,0x4E,0x54,
+ 0x3E,0x40,0x40,0x58,0x54,0x58,0x7E,0x6C,0x74,0x8E,
+ 0x78,0x80,0x88,0x78,0x7E,0x82,0x8A,0x80,0x96,0x96,
+ 0x8A,0x9E,0xAA,0x8A,0xC0,0xA4,0xB2,0x9A,0xA4,0x94,
+ 0x6A,0x84,0x64,0x42,0x64,0x44,0x4A,0x54,0x5E,0x66,
+ 0x5C,0x84,0x7A,0x6A,0x98,0x76,0x7E,0x86,0x7A,0x80,
+ 0x80,0x82,0x92,0x7C,0xA0,0x86,0x9C,0x92,0x92,0xA4,
+ 0x8C,0xA2,0x9A,0x94,0x8E,0x8C,0x7E,0x72,0x6A,0x6C,
+ 0x5C,0x62,0x60,0x66,0x6A,0x6A,0x76,0x78,0x72,0x7A,
+ 0x7A,0x7E,0x7E,0x7E,0x82,0x7A,0x84,0x7E,0x84,0x8A,
+ 0x86,0x8C,0x88,0x86,0x8A,0x8C,0x86,0x88,0x8A,0x94,
+ 0x86,0x90,0x84,0x88,0x84,0x7E,0x7E,0x64,0x68,0x60,
+ 0x50,0x64,0x58,0x60,0x6C,0x5C,0x78,0x6C,0x7C,0x7C,
+ 0x68,0x80,0x70,0x78,0x74,0x84,0x74,0x7C,0x70,0x88,
+ 0x60,0xA4,0x70,0xA4,0x9C,0x8C,0xA0,0x94,0xC0,0x88,
+ 0xA4,0x8C,0x7C,0x84,0x7C,0x78,0x6C,0x74,0x6C,0x70,
+ 0x6C,0x74,0x70,0x68,0x70,0x64,0x64,0x58,0x70,0x5C,
+ 0x60,0x7C,0x68,0x7C,0x74,0x84,0x8C,0x8C,0x90,0xA0,
+ 0x88,0x94,0x88,0x94,0x90,0x8C,0x88,0x88,0x8C,0x94,
+ 0x88,0x9C,0x88,0x9C,0x80,0x88,0x84,0x74,0x7C,0x6C,
+ 0x6C,0x5C,0x60,0x6C,0x60,0x6C,0x78,0x64,0x80,0x6C,
+ 0x90,0x68,0x84,0x7C,0x7C,0x84,0x84,0x80,0x80,0x78,
+ 0x90,0x7C,0x94,0x84,0x88,0x8C,0x84,0x80,0x94,0x78,
+ 0x88,0x68,0x94,0x70,0x80,0x94,0x70,0x88,0x7C,0x74,
+ 0x80,0x6C,0x90,0x64,0x7C,0x88,0x6C,0x74,0x60,0x7C,
+ 0x78,0x64,0x8C,0x84,0x60,0x98,0x50,0x90,0x60,0x8C,
+ 0x74,0x68,0x8C,0x70,0x8C,0x80,0x80,0x88,0x7C,0x90,
+ 0x80,0x90,0x88,0x7C,0x7C,0x90,0x70,0x8C,0x78,0x8C,
+ 0x78,0x84,0x80,0x70,0x8C,0x6C,0x88,0x78,0x80,0x7C,
+ 0x6C,0x70,0x70,0x80,0x68,0x78,0x80,0x78,0x6C,0x90,
+ 0x74,0x80,0x74,0x94,0x70,0x80,0x8C,0x8C,0x80,0x78,
+ 0x90,0x68,0x80,0x8C,0x90,0x7C,0x80,0x94,0x6C,0x80,
+ 0x88,0x74,0x88,0x64,0x88,0x68,0x78,0x78,0x78,0x7C,
+ 0x70,0x8C,0x74,0x7C,0x78,0x80,0x78,0x80,0x6C,0x88,
+ 0x7C,0x6C,0x8C,0x7C,0x80,0x70,0x88,0x8C,0x80,0x7C,
+ 0x84,0x7C,0x7C,0x5C,0x90,0x74,0x7C,0x78,0x6C,0x80,
+ 0x70,0x74,0x84,0x80,0x80,0x74,0x80,0x90,0x5C,0x8C,
+ 0x74,0x74,0x88,0x68,0x90,0x74,0x70,0x98,0x70,0x90,
+ 0x70,0x88,0x84,0x68,0x6C,0x88,0x68,0x80,0x6C,0x84,
+ 0x78,0x78,0x70,0x84,0x68,0x74,0x60,0x78,0x70,0x68,
+ 0x68,0x88,0x70,0x70,0x78,0x80,0x7C,0x74,0x78,0x80,
+ 0x80,0x70,0x84,0x7C,0x84,0x78,0x7C,0x78,0x88,0x84,
+ 0x8C,0x90,0x90,0x94,0x98,0x98,0x94,0x94,0x94,0x94,
+ 0x9C,0x9C,0x98,0x98,0xA8,0xA0,0xA4,0xA8,0xA8,0xA4,
+ 0xA8,0xAC,0xA0,0x9C,0x94,0xAC,0xA0,0x8C,0xA4,0xA8,
+ 0xA8,0x98,0x9C,0x98,0x88,0x9C,0x8C,0x8C,0x8C,0x78,
+ 0x80,0x74,0x68,0x58,0x58,0x58,0x48,0x4C,0x50,0x48,
+ 0x44,0x44,0x58,0x48,0x44,0x4C,0x4C,0x5C,0x54,0x5C,
+ 0x60,0x64,0x70,0x70,0x70,0x7C,0x80,0x84,0x90,0x90,
+ 0x90,0x8C,0x90,0x84,0x84,0x7C,0x80,0x7E,0x7E,0x7E,
+ 0x7A,0x7E,0x7A,0x7C,0x7C,0x74,0x74,0x74,0x74,0x74,
+ 0x76,0x74,0x74,0x7A,0x7A,0x7A,0x80,0x7C,0x80,0x82,
+ 0x82,0x82,0x82,0x84,0x80,0x80,0x7E,0x7E,0x7A,0x7E,
+ 0x7E,0x7E,0x7E,0x80,0x80,0x7E,0x80,0x80,0x80,0x80,
+ 0x82,0x82,0x84,0x86,0x88,0x88,0x8A,0x8E,0x8C,0x8A,
+ 0x8E,0x8E,0x8A,0x8A,0x8A,0x88,0x88,0x84,0x84,0x82,
+ 0x80,0x7E,0x7E,0x7C,0x7C,0x7C,0x78,0x78,0x76,0x76,
+ 0x70,0x70,0x70,0x6E,0x6C,0x6E,0x70,0x6E,0x6C,0x6E,
+ 0x6E,0x74,0x72,0x74,0x76,0x76,0x7A,0x7C,0x7C,0x80,
+ 0x80,0x82,0x84,0x84,0x86,0x84,0x84,0x8A,0x8A,0x88,
+ 0x86,0x84,0x80,0x7A,0x7A,0x7A,0x7A,0x7A,0x78,0x74,
+ 0x72,0x72,0x72,0x74,0x76,0x7A,0x7A,0x7A,0x7C,0x7C,
+ 0x80,0x80,0x84,0x86,0x84,0x86,0x86,0x88,0x88,0x8A,
+ 0x8A,0x8C,0x8E,0x90,0x8E,0x8A,0x86,0x7E,0x78,0x74,
+ 0x74,0x72,0x72,0x70,0x72,0x6E,0x6E,0x70,0x72,0x72,
+ 0x72,0x72,0x74,0x76,0x76,0x7A,0x7A,0x7A,0x7C,0x80,
+ 0x82,0x84,0x86,0x8A,0x8A,0x8C,0x8C,0x90,0x92,0x96,
+ 0x96,0x94,0x8E,0x86,0x7E,0x76,0x76,0x76,0x78,0x78,
+ 0x78,0x76,0x76,0x76,0x76,0x78,0x7A,0x78,0x78,0x78,
+ 0x78,0x7A,0x7A,0x7A,0x7C,0x7C,0x7E,0x80,0x82,0x84,
+ 0x86,0x88,0x8A,0x8C,0x92,0x94,0x94,0x92,0x88,0x7E,
+ 0x72,0x6A,0x6C,0x72,0x7A,0x7C,0x7C,0x7C,0x7C,0x7E,
+ 0x82,0x82,0x84,0x84,0x82,0x82,0x84,0x86,0x88,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8E,0x90,0x92,0x94,0x96,0x9A,
+ 0xA0,0xA2,0x9E,0x94,0x84,0x74,0x64,0x5E,0x5C,0x62,
+ 0x70,0x76,0x78,0x76,0x74,0x76,0x78,0x7C,0x7A,0x78,
+ 0x76,0x70,0x72,0x74,0x7A,0x7C,0x7E,0x82,0x84,0x8A,
+ 0x90,0x94,0x9C,0x9E,0xA6,0xAC,0xAE,0xAC,0xA4,0x92,
+ 0x80,0x6E,0x62,0x5E,0x62,0x6A,0x76,0x80,0x84,0x86,
+ 0x88,0x8A,0x90,0x90,0x8C,0x84,0x7A,0x74,0x72,0x7A,
+ 0x80,0x88,0x8E,0x8E,0x90,0x90,0x92,0x94,0x96,0x9A,
+ 0xA0,0xA8,0xA4,0x9A,0x82,0x66,0x4C,0x3C,0x38,0x3C,
+ 0x4C,0x5A,0x66,0x6E,0x72,0x76,0x7A,0x80,0x82,0x82,
+ 0x76,0x68,0x54,0x4A,0x48,0x5A,0x72,0x80,0x86,0x86,
+ 0x88,0x88,0x90,0x96,0xA2,0xB0,0xBA,0xBC,0xB2,0x98,
+ 0x74,0x50,0x38,0x30,0x3A,0x4E,0x62,0x76,0x80,0x84,
+ 0x88,0x8A,0x8E,0x90,0x90,0x82,0x6C,0x4E,0x34,0x26,
+ 0x2A,0x48,0x74,0x98,0xA8,0xA2,0x9A,0x92,0x94,0x9E,
+ 0xB4,0xC4,0xCE,0xBC,0x9E,0x6C,0x3A,0x1C,0x14,0x2A,
+ 0x4A,0x70,0x8C,0x98,0x9C,0x9A,0x98,0x9A,0x9C,0x9A,
+ 0x8A,0x6E,0x48,0x2A,0x1A,0x22,0x42,0x70,0x9E,0xBE,
+ 0xCA,0xC4,0xB0,0xA4,0x9C,0xA8,0xC0,0xD6,0xDA,0xBA,
+ 0x86,0x40,0x16,0x08,0x26,0x5A,0x90,0xB6,0xBE,0xB4,
+ 0xA2,0x90,0x90,0x92,0x94,0x84,0x66,0x3C,0x1C,0x14,
+ 0x28,0x5A,0x8C,0xB2,0xBE,0xBA,0xAC,0x9E,0x98,0xA0,
+ 0xB0,0xCC,0xDE,0xDE,0xAC,0x6C,0x18,0x00,0x00,0x14,
+ 0x60,0x9E,0xC8,0xC6,0xB4,0x9A,0x86,0x86,0x7E,0x74,
+ 0x58,0x36,0x22,0x1C,0x40,0x64,0x96,0xAC,0xAC,0xA0,
+ 0x88,0x82,0x84,0x9A,0xB2,0xC8,0xE4,0xF2,0xEE,0xBA,
+ 0x6C,0x0C,0x00,0x00,0x04,0x64,0xB0,0xE2,0xE4,0xC8,
+ 0xA6,0x86,0x74,0x5C,0x44,0x28,0x14,0x24,0x4A,0x86,
+ 0xB0,0xBE,0xA6,0x7E,0x66,0x5C,0x76,0x98,0xB6,0xCC,
+ 0xD4,0xE4,0xFC,0xFF,0xC8,0x62,0x00,0x00,0x00,0x0A,
+ 0x98,0xFC,0xFF,0xF6,0xB6,0x82,0x66,0x60,0x44,0x24,
+ 0x00,0x0E,0x4A,0x9A,0xDC,0xD8,0xA4,0x5C,0x30,0x40,
+ 0x68,0xA0,0xBA,0xC2,0xC2,0xC8,0xEE,0xFF,0xFF,0xC4,
+ 0x2C,0x00,0x00,0x00,0x58,0xF8,0xFF,0xFF,0xC6,0x88,
+ 0x86,0x72,0x52,0x02,0x00,0x00,0x54,0xD8,0xFF,0xEE,
+ 0x88,0x28,0x16,0x34,0x72,0x90,0x98,0xA0,0xAC,0xD0,
+ 0xE2,0xF0,0xFA,0xF8,0xD4,0x54,0x00,0x00,0x00,0x2A,
+ 0xBC,0xFF,0xFF,0xDE,0xA2,0x74,0x60,0x24,0x00,0x00,
+ 0x1A,0x94,0xEA,0xFF,0xB8,0x5A,0x22,0x1C,0x48,0x60,
+ 0x7C,0x92,0xAA,0xCC,0xCA,0xC6,0xB8,0xC6,0xF0,0xFF,
+ 0xDE,0x3C,0x00,0x00,0x00,0x86,0xF2,0xFF,0xCA,0xA8,
+ 0x9C,0x88,0x58,0x00,0x00,0x06,0x92,0xFF,0xFF,0xAE,
+ 0x46,0x26,0x36,0x4C,0x56,0x54,0x80,0xB0,0xCC,0xB8,
+ 0x8E,0x8C,0xAC,0xE4,0xFF,0xFF,0xE4,0x5C,0x00,0x00,
+ 0x00,0x50,0xA6,0xF2,0xEE,0xD4,0xBC,0x78,0x3A,0x00,
+ 0x00,0x2A,0x88,0xEC,0xEA,0xBE,0x62,0x30,0x28,0x20,
+ 0x40,0x60,0x9C,0xC2,0xAE,0x8E,0x6A,0x90,0xBE,0xDA,
+ 0xE0,0xD6,0xFA,0xF6,0x64,0x00,0x00,0x00,0x88,0xE6,
+ 0xFF,0xD0,0xC6,0xC2,0x78,0x0E,0x00,0x00,0x68,0xDE,
+ 0xFF,0xCE,0x96,0x5C,0x2E,0x22,0x00,0x34,0x88,0xC2,
+ 0xD2,0x80,0x66,0x70,0xA6,0xD0,0xBE,0xBC,0xD0,0xFF,
+ 0xFF,0x98,0x00,0x00,0x00,0x8C,0xCC,0xD6,0xE2,0xE6,
+ 0xF4,0x72,0x00,0x00,0x00,0x8A,0xCA,0xD4,0xDC,0xD4,
+ 0xCC,0x28,0x00,0x00,0x30,0xC0,0xAC,0x9C,0x9C,0x86,
+ 0x90,0x60,0x7A,0xBA,0xCA,0xE0,0xC2,0xF0,0xFF,0xD2,
+ 0x00,0x00,0x00,0x72,0xC8,0xB6,0xC6,0xF2,0xEE,0x74,
+ 0x00,0x00,0x14,0x8A,0xAE,0xB8,0xEA,0xFF,0xBA,0x2E,
+ 0x00,0x00,0x4C,0x82,0xA6,0xA8,0xC8,0xA2,0x42,0x36,
+ 0x68,0xC4,0xD4,0xAE,0xC8,0xE6,0xFF,0xFF,0x98,0x00,
+ 0x00,0x00,0x3C,0x7A,0xB4,0xFF,0xFF,0xB6,0x3A,0x00,
+ 0x0E,0x20,0x32,0x7C,0xE0,0xFF,0xE0,0x80,0x50,0x26,
+ 0x00,0x06,0x48,0x9E,0xC8,0x9E,0x98,0x6A,0x58,0x66,
+ 0x82,0xC4,0xCA,0xB8,0xC8,0xD0,0xFA,0xFC,0xB0,0x08,
+ 0x00,0x0C,0x28,0x62,0x9E,0xFF,0xFF,0xB4,0x58,0x2C,
+ 0x18,0x0E,0x0C,0x74,0xD8,0xEE,0xD6,0xAA,0x82,0x40,
+ 0x00,0x00,0x4A,0x78,0xA0,0xB0,0xC2,0xA4,0x48,0x50,
+ 0x76,0x92,0xA4,0xB0,0xE0,0xEE,0xD6,0xF8,0xFC,0x9E,
+ 0x00,0x00,0x18,0x1C,0x50,0xA6,0xFF,0xFF,0xAC,0x7C,
+ 0x4E,0x00,0x00,0x0C,0x80,0xB2,0xB6,0xE6,0xE8,0xA4,
+ 0x44,0x04,0x0A,0x24,0x1E,0x66,0xC2,0xC2,0xA4,0x84,
+ 0x84,0x7A,0x6A,0x98,0xB6,0xB0,0xC0,0xDA,0xF6,0xFC,
+ 0xD6,0x6A,0x00,0x10,0x02,0x0E,0x74,0xB6,0xDE,0xCC,
+ 0xB6,0xAE,0x54,0x10,0x20,0x2A,0x4C,0x70,0xAA,0xD2,
+ 0xBC,0xB2,0xA4,0x48,0x06,0x2A,0x1E,0x36,0x7C,0xAC,
+ 0xB8,0x98,0xA2,0xA2,0x6C,0x78,0x9A,0x9C,0xAC,0xC4,
+ 0xDA,0xE6,0xFA,0xDA,0x60,0x26,0x30,0x00,0x00,0x5A,
+ 0x8E,0xB4,0xCE,0xEC,0xCC,0x72,0x60,0x46,0x0A,0x16,
+ 0x46,0x6A,0x8E,0xB6,0xDA,0xC2,0x96,0x72,0x38,0x2E,
+ 0x10,0x2C,0x64,0x72,0xA4,0xBA,0xAC,0xAE,0xA0,0xA6,
+ 0x9A,0x8A,0xA2,0xA4,0xA8,0xD4,0xE6,0xC4,0x84,0x68,
+ 0x62,0x00,0x0C,0x48,0x34,0x62,0xB6,0xBC,0xBC,0xBE,
+ 0xA6,0x72,0x4A,0x4A,0x34,0x1E,0x52,0x6E,0x7E,0xAA,
+ 0xC4,0xAC,0x92,0x94,0x48,0x24,0x48,0x38,0x4A,0x7C,
+ 0x9C,0xAE,0xB8,0xBC,0xB2,0x9C,0xAC,0x9E,0x98,0xB2,
+ 0xC0,0xCA,0xBA,0x80,0x64,0x5C,0x14,0x2C,0x42,0x38,
+ 0x72,0xA0,0x9A,0xAE,0xB6,0x9A,0x78,0x66,0x5C,0x50,
+ 0x58,0x68,0x62,0x76,0x8C,0x84,0x8A,0x80,0x7A,0x84,
+ 0x62,0x64,0x64,0x5E,0x70,0x70,0x74,0x8C,0x96,0xA8,
+ 0xB4,0xB6,0xBC,0xB4,0xBC,0xBE,0xBC,0xAC,0x98,0x5E,
+ 0x6C,0x34,0x1E,0x4C,0x3A,0x50,0x7C,0x7C,0x90,0xA4,
+ 0x9A,0x9C,0x9C,0x8A,0x76,0x70,0x68,0x5A,0x5C,0x5E,
+ 0x56,0x70,0x7A,0x7A,0x84,0x90,0x7C,0x76,0x80,0x6A,
+ 0x72,0x76,0x6A,0x74,0x84,0x8E,0xA6,0xB4,0xB8,0xBA,
+ 0xC4,0xC2,0xC2,0xAE,0x9E,0x6E,0x76,0x46,0x30,0x48,
+ 0x2A,0x3E,0x5C,0x62,0x78,0x90,0x9A,0xA6,0xB2,0xAA,
+ 0x9A,0x9A,0x7C,0x62,0x60,0x4A,0x44,0x56,0x5C,0x6A,
+ 0x78,0x80,0x80,0x84,0x82,0x7C,0x7E,0x7E,0x7C,0x90,
+ 0x94,0xA4,0xA4,0xB0,0xB0,0xCC,0xD8,0xFF,0xFF,0xFF,
+ 0xD4,0x98,0x9C,0x24,0x28,0x00,0x00,0x04,0x14,0x20,
+ 0x4C,0x70,0x80,0xA0,0xBC,0xAC,0xC0,0xC0,0xA4,0xA4,
+ 0x90,0x70,0x68,0x54,0x34,0x30,0x2C,0x20,0x44,0x48,
+ 0x6C,0x88,0x88,0x94,0xA4,0x98,0xA0,0xA8,0x9C,0x9C,
+ 0xB8,0xB8,0xD8,0xEC,0xE0,0xD8,0xE0,0x8C,0x98,0x64,
+ 0x30,0x4C,0x20,0x20,0x30,0x28,0x1C,0x40,0x4C,0x50,
+ 0x8C,0xA4,0xB4,0xD4,0xC0,0xB8,0xB8,0x9C,0x7C,0x7C,
+ 0x5C,0x4C,0x48,0x3C,0x34,0x50,0x48,0x4C,0x70,0x64,
+ 0x70,0x7C,0x70,0x8C,0x9C,0xB0,0xBC,0xCC,0xC4,0xD8,
+ 0xDC,0xD0,0xBC,0xD8,0x9C,0x94,0x9C,0x44,0x6C,0x40,
+ 0x1C,0x1C,0x18,0x14,0x34,0x54,0x58,0x8C,0x98,0x94,
+ 0xC0,0xB4,0xA4,0xB8,0xA8,0x90,0x94,0x74,0x5C,0x68,
+ 0x4C,0x44,0x50,0x48,0x40,0x5C,0x50,0x5C,0x74,0x64,
+ 0x7C,0x94,0xA0,0xBC,0xC0,0xB8,0xB8,0xBC,0xAC,0xC8,
+ 0xC4,0xD4,0xA8,0xB0,0x8C,0x60,0x70,0x2C,0x2C,0x24,
+ 0x2C,0x30,0x4C,0x50,0x5C,0x78,0x74,0x90,0xA4,0xA0,
+ 0xB4,0xB4,0xA8,0xA0,0x9C,0x80,0x7C,0x70,0x58,0x5C,
+ 0x4C,0x44,0x3C,0x44,0x4C,0x54,0x68,0x6C,0x88,0x94,
+ 0xA0,0xAC,0xA8,0xAC,0xB4,0xBC,0xB8,0xCC,0xC4,0xC8,
+ 0xA4,0xA0,0x80,0x64,0x6C,0x40,0x40,0x38,0x40,0x38,
+ 0x4C,0x48,0x54,0x6C,0x70,0x8C,0x98,0x9C,0xA4,0xA8,
+ 0x9C,0x9C,0x9C,0x88,0x88,0x78,0x6C,0x70,0x5C,0x58,
+ 0x48,0x48,0x48,0x50,0x60,0x70,0x88,0x8C,0x98,0x9C,
+ 0x9C,0x9C,0xA4,0xA8,0xB8,0xC4,0xC4,0xD0,0xB8,0xA4,
+ 0x98,0x60,0x60,0x44,0x48,0x44,0x54,0x44,0x54,0x54,
+ 0x48,0x60,0x68,0x74,0x84,0x90,0x9C,0xA8,0xAC,0xA0,
+ 0xA0,0x8C,0x84,0x80,0x78,0x78,0x7C,0x68,0x68,0x60,
+ 0x58,0x5C,0x60,0x60,0x68,0x74,0x78,0x88,0x8C,0x90,
+ 0x9C,0x9C,0xA0,0xA8,0xAC,0xB4,0xB4,0xB0,0x9C,0xA4,
+ 0x7C,0x74,0x68,0x54,0x54,0x50,0x4C,0x44,0x5C,0x54,
+ 0x6C,0x70,0x70,0x7C,0x80,0x84,0x8C,0x9C,0xA0,0xA8,
+ 0xA4,0x94,0x94,0x80,0x70,0x6C,0x70,0x6C,0x78,0x78,
+ 0x74,0x78,0x70,0x68,0x6C,0x64,0x68,0x6C,0x70,0x78,
+ 0x80,0x84,0x8C,0x88,0x88,0x8C,0x8C,0x8C,0x94,0x94,
+ 0x94,0x9C,0x9C,0x94,0x98,0x84,0x80,0x74,0x6C,0x64,
+ 0x64,0x68,0x6C,0x74,0x70,0x74,0x74,0x6C,0x70,0x68,
+ 0x6C,0x78,0x84,0x8C,0x8C,0x90,0x8C,0x84,0x80,0x7C,
+ 0x78,0x80,0x80,0x80,0x84,0x80,0x80,0x78,0x68,0x68,
+ 0x70,0x70,0x78,0x70,0x70,0x78,0x80,0x80,0x88,0x88,
+ 0x88,0x88,0x88,0x80,0x88,0x80,0x78,0x70,0x78,0x78,
+ 0x80,0x80,0x80,0x78,0x78,0x68,0x60,0x60,0x68,0x68,
+ 0x70,0x78,0x80,0x80,0x80,0x80,0x78,0x70,0x80,0x78,
+ 0x80,0x80,0x88,0x88,0x88,0x80,0x80,0x80,0x78,0x80,
+ 0x78,0x80,0x80,0x80,0x78,0x68,0x70,0x70,0x70,0x70,
+ 0x78,0x78,0x80,0x78,0x78,0x78,0x70,0x68,0x68,0x60,
+ 0x70,0x70,0x78,0x70,0x78,0x78,0x78,0x70,0x78,0x78,
+ 0x80,0x80,0x80,0x78,0x80,0x88,0x88,0x80,0x80,0x78,
+ 0x80,0x80,0x78,0x78,0x80,0x78,0x78,0x78,0x78,0x78,
+ 0x78,0x78,0x70,0x78,0x80,0x78,0x70,0x78,0x78,0x70,
+ 0x78,0x78,0x78,0x80,0x88,0x80,0x88,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x78,0x80,0x88,0x80,0x78,0x70,
+ 0x68,0x68,0x70,0x78,0x80,0x80,0x88,0x88,0x88,0x88,
+ 0x80,0x78,0x78,0x78,0x80,0x78,0x80,0x78,0x80,0x80,
+ 0x88,0x80,0x80,0x78,0x80,0x78,0x78,0x80,0x80,0x88,
+ 0x88,0x80,0x80,0x78,0x80,0x78,0x78,0x80,0x88,0x88,
+ 0x88,0x80,0x80,0x78,0x70,0x68,0x70,0x78,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x78,0x80,0x78,0x80,0x78,
+ 0x80,0x80,0x80,0x80,0x80,0x78,0x78,0x70,0x70,0x78,
+ 0x80,0x80,0x80,0x88,0x88,0x80,0x70,0x68,0x68,0x68,
+ 0x70,0x78,0x88,0x80,0x88,0x80,0x88,0x80,0x78,0x78,
+ 0x78,0x70,0x78,0x78,0x80,0x80,0x80,0x78,0x70,0x70,
+ 0x78,0x80,0x78,0x80,0x80,0x80,0x80,0x78,0x70,0x70,
+ 0x70,0x78,0x80,0x78,0x80,0x78,0x80,0x78,0x80,0x78,
+ 0x80,0x78,0x78,0x78,0x78,0x70,0x78,0x70,0x78,0x70,
+ 0x78,0x78,0x80,0x78,0x80,0x78,0x80,0x78,0x80,0x78,
+ 0x78,0x70,0x78,0x80,0x80,0x80,0x80,0x78,0x80,0x78,
+ 0x78,0x78,0x80,0x78,0x78,0x70,0x78,0x78,0x78,0x70,
+ 0x78,0x78,0x78,0x80,0x88,0x80,0x88,0x80,0x80,0x78,
+ 0x78,0x80,0x80,0x78,0x80,0x78,0x80,0x78,0x78,0x70,
+ 0x78,0x78,0x80,0x80,0x80,0x80,0x80,0x80,0x78,0x70,
+ 0x78,0x80,0x78,0x80,0x88,0x80,0x88,0x80,0x78,0x70,
+ 0x70,0x70,0x78,0x70,0x78,0x70,0x78,0x78,0x80,0x78,
+ 0x80,0x78,0x80,0x80,0x80,0x88,0x80,0x80,0x80,0x78,
+ 0x80,0x78,0x80,0x78,0x78,0x70,0x78,0x70,0x78,0x78,
+ 0x78,0x78,0x78,0x78,0x78,0x80,0x78,0x70,0x78,0x78,
+ 0x80,0x80,0x88,0x80,0x88,0x80,0x80,0x78,0x70,0x68,
+ 0x70,0x68,0x70,0x78,0x80,0x78,0x80,0x78,0x80,0x78,
+ 0x80,0x78,0x80,0x80,0x80,0x80,0x80,0x78,0x80,0x78,
+ 0x78,0x70,0x78,0x78,0x80,0x78,0x80,0x78,0x78,0x70,
+ 0x78,0x70,0x78,0x78,0x80,0x78,0x78,0x80,0x88,0x80,
+ 0x80,0x80,0x80,0x78,0x80,0x78,0x80,0x78,0x80,0x78,
+ 0x78,0x78,0x80,0x78,0x80,0x78,0x80,0x78,0x80,0x80,
+ 0x80,0x80,0x80,0x78,0x78,0x78,0x80,0x78,0x80,0x78,
+ 0x80,0x78,0x78,0x70,0x70,0x70,0x78,0x80,0x88,0x80,
+ 0x88,0x78,0x80,0x78,0x78,0x78,0x80,0x80,0x88,0x80,
+ 0x88,0x80,0x80,0x78,0x78,0x70,0x78,0x78,0x80,0x78,
+ 0x80,0x78,0x78,0x70,0x78,0x70,0x78,0x70,0x80,0x78,
+ 0x80,0x78,0x80,0x78,0x80,0x78,0x80,0x78,0x80,0x78,
+ 0x78,0x70,0x78,0x78,0x80,0x78,0x80,0x78,0x80,0x78,
+ 0x78,0x70,0x80,0x78,0x88,0x80,0x80,0x78,0x78,0x70,
+ 0x78,0x70,0x80,0x78,0x80,0x78,0x80,0x70,0x80,0x60,
+ 0x80,0x40,0x78,0x58,0x80,0x80,0x80,0x90,0x78,0x98,
+ 0x80,0x98,0x80,0x90,0x78,0x80,0x78,0x78,0x60,0x70,
+ 0x78,0x70,0x80,0x70,0x80,0x70,0x78,0x78,0x78,0x70,
+ 0x70,0x88,0x88,0x80,0x78,0x70,0x80,0x80,0x90,0x70,
+ 0x78,0x70,0x80,0x78,0x78,0x88,0x78,0x70,0x78,0x88,
+ 0x80,0x88,0x88,0x80,0x90,0x70,0x88,0x68,0x80,0x78,
+ 0x68,0x70,0x88,0x68,0x78,0x98,0x88,0x80,0x90,0x70,
+ 0x78,0x88,0x88,0x78,0x88,0x78,0x80,0x80,0x78,0x88,
+ 0x50,0x40,0x88,0x68,0xB8,0x78,0xA0,0x50,0xB0,0x70,
+ 0xB0,0x38,0x68,0x70,0x70,0x98,0xA8,0x90,0x78,0xA0,
+ 0x80,0x88,0x88,0x98,0x88,0x68,0x88,0x80,0x60,0x68,
+ 0x80,0x80,0x70,0x80,0x60,0x68,0x80,0x80,0x78,0x80,
+ 0x78,0x88,0x80,0x78,0x88,0x88,0x80,0x80,0x78,0x78,
+ 0x78,0x80,0x78,0x98,0x70,0x80,0x78,0x68,0x78,0x88,
+ 0x78,0x88,0x78,0x80,0x80,0x80,0x88,0x80,0x78,0x70,
+ 0x78,0x78,0x80,0x88,0x70,0x88,0x80,0x88,0x78,0x90,
+ 0x78,0x78,0x80,0x80,0x78,0x80,0x80,0x88,0x88,0x90,
+ 0x80,0x88,0x80,0x78,0x88,0x70,0x78,0x88,0x78,0x80,
+ 0x80,0x80,0x78,0x78,0x78,0x68,0x78,0x78,0x90,0x80,
+ 0x80,0x88,0x78,0x78,0x88,0x70,0x80,0x80,0x88,0x80,
+ 0x80,0x88,0x70,0x80,0x68,0x80,0x80,0x80,0x78,0x80,
+ 0x80,0x80,0x78,0x88,0x68,0x78,0x80,0x80,0x78,0x80,
+ 0x80,0x78,0x80,0x78,0x78,0x78,0x78,0x88,0x70,0x80,
+ 0x78,0x88,0x78,0x70,0x80,0x78,0x80,0x78,0x80,0x80,
+ 0x70,0x80,0x80,0x80,0x80,0x80,0x78,0x78,0x70,0x80,
+ 0x80,0x88,0x78,0x90,0x80,0x78,0x80,0x78,0x78,0x70,
+ 0x70,0x88,0x78,0x80,0x80,0x80,0x80,0x70,0x80,0x78,
+ 0x78,0x78,0x84,0x80,0x7C,0x80,0x80,0x7C,0x7C,0x80,
+ 0x80,0x80,0x80,0x88,0x80,0x84,0x7C,0x80,0x78,0x7C,
+ 0x7C,0x7C,0x80,0x7C,0x80,0x7C,0x80,0x7C,0x80,0x84,
+ 0x78,0x84,0x7C,0x80,0x7C,0x7C,0x80,0x7C,0x7C,0x7C,
+ 0x7C,0x80,0x7C,0x80,0x80,0x7C,0x80,0x80,0x80,0x7C,
+ 0x7C,0x80,0x7C,0x80,0x7C,0x80,0x80,0x80,0x80,0x80,
+ 0x84,0x7C,0x7C,0x80,0x7C,0x80,0x80,0x84,0x7C,0x7C,
+ 0x80,0x7C,0x80,0x7C,0x80,0x80,0x7C,0x80,0x7C,0x80,
+ 0x7C,0x80,0x80,0x7C,0x80,0x80,0x80,0x80,0x80,0x84,
+ 0x7C,0x80,0x7C,0x80,0x80,0x7C,0x80,0x7C,0x80,0x80,
+ 0x7C,0x80,0x7C,0x80,0x7C,0x80,0x80,0x7C,0x80,0x7C,
+ 0x80,0x80,0x7C,0x7C,0x80,0x80,0x7C,0x7C,0x7C,0x7C,
+ 0x7C,0x7C,0x80,0x80,0x7C,0x80,0x7C,0x80,0x7C,0x80,
+ 0x7C,0x7C,0x7C,0x7C,0x7C,0x80,0x7C,0x7C,0x7C,0x80,
+ 0x80,0x80,0x80,0x80,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,
+ 0x7C,0x80,0x7C,0x7C,0x7C,0x7C,0x7C,0x80,0x7C,0x80,
+ 0x7C,0x80,0x80,0x80,0x7C,0x80,0x7C,0x7C,0x7C,0x80,
+ 0x7C,0x80,0x7E,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample10[378]={
+ 0x80,0x80,0xCE,0xD4,0xFA,0xFF,0xFF,0xBE,0x9E,0xFF,
+ 0xFF,0x00,0xFF,0x5E,0xFF,0xFF,0x18,0xDC,0x00,0x9E,
+ 0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x2C,0x1C,0x52,0x66,0xA2,0xCC,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF4,0xFF,
+ 0x92,0xA8,0x56,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x36,
+ 0x5A,0x7A,0x98,0xA6,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,0xE6,0xAA,0x86,0x80,0x6C,0x40,0x24,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x08,0x20,0x62,0x76,0x6E,0x8A,0xB4,0xA4,0xCC,0xE2,
+ 0xE4,0xF6,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,
+ 0xD6,0xD2,0xD4,0xB2,0xBE,0xB6,0x96,0x92,0x6E,0x70,
+ 0x52,0x58,0x58,0x3C,0x26,0x2C,0x0A,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,
+ 0x00,0x02,0x14,0x06,0x16,0x48,0x18,0x30,0x78,0x64,
+ 0x7C,0xBE,0x9A,0xA6,0xA8,0x9E,0x98,0x9C,0x92,0x74,
+ 0xA2,0xB6,0xB6,0x9A,0xBE,0xBE,0xA4,0xB0,0x86,0x8C,
+ 0xAC,0xB4,0xBA,0xA6,0xD2,0xC0,0xDC,0xD8,0xE8,0xDE,
+ 0xC2,0xAC,0x90,0x9C,0x9E,0x84,0x7A,0x7A,0x78,0x84,
+ 0x56,0x56,0x2C,0x44,0x4C,0x12,0x22,0x0C,0x30,0x12,
+ 0x24,0x00,0x00,0x16,0x00,0x00,0x00,0x00,0x06,0x16,
+ 0x14,0x3C,0x22,0x36,0x3A,0x46,0x30,0x58,0x5E,0x54,
+ 0x8C,0x84,0x6C,0x8A,0x9A,0x96,0xB0,0xBA,0xBA,0x98,
+ 0xAE,0xB2,0x96,0xB6,0xAE,0xB4,0xB8,0xB4,0xAE,0xAE,
+ 0xAE,0xB2,0xB4,0xD2,0xC6,0xBE,0xD2,0xC4,0xC4,0xB2,
+ 0xAC,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample11[1527]={
+ 0xA0,0x90,0xC4,0xB6,0x92,0xE8,0xFF,0xFF,0x52,0xFE,
+ 0x4E,0x86,0xAE,0xEC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xD6,0xFF,0xFF,0x00,0xBC,0x46,0x00,0x00,0x16,0x00,
+ 0x36,0x7E,0xDE,0xFE,0xFF,0xFF,0xFF,0xFF,0xBE,0xFF,
+ 0xFF,0xF6,0xFF,0xFF,0x98,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xA4,0x86,0x66,0x00,0x00,0x1C,
+ 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x06,0x46,0x0E,
+ 0xAE,0xAE,0x4E,0xFF,0xFF,0xFF,0xCE,0xE8,0xB4,0xA6,
+ 0x92,0xBC,0xC6,0xA6,0xBA,0xB6,0x66,0x5A,0x3E,0x0A,
+ 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x86,0x26,0xAE,0x2E,0x94,0x9E,
+ 0xEA,0xA0,0x8A,0xA4,0xA0,0x86,0x74,0xF4,0x60,0xB6,
+ 0xBE,0x9E,0x8E,0x72,0x86,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x1C,0x1E,0x00,0x0A,0x26,0x46,0x30,
+ 0x1C,0x60,0x92,0x26,0xE6,0x9A,0xE6,0xCA,0xFF,0xFF,
+ 0xFE,0xFF,0xD6,0xFF,0xFF,0xFF,0xE2,0xFF,0x8A,0x8A,
+ 0xA0,0x7C,0x4A,0x4E,0x5E,0x64,0x8E,0x4E,0x5A,0x72,
+ 0x6C,0x3A,0x12,0x32,0xCE,0x96,0xB8,0x9E,0xCC,0xD2,
+ 0xE6,0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD6,0x7E,0xCA,
+ 0xFE,0xB4,0x6E,0x76,0x4C,0x96,0x60,0x1E,0x56,0x8A,
+ 0x62,0xF0,0x8A,0x3E,0xC6,0x56,0xC2,0x74,0x86,0xD2,
+ 0xE2,0xFF,0xFF,0xA6,0xFF,0xFF,0xD6,0xDE,0xAA,0xB8,
+ 0xFC,0xC0,0x86,0x9A,0x84,0x2C,0x44,0x52,0x48,0x5E,
+ 0x02,0x56,0x00,0x48,0x12,0x00,0x1E,0x12,0x00,0x16,
+ 0x14,0x00,0x12,0x0E,0x00,0x22,0x08,0x0E,0x0A,0x5E,
+ 0x8A,0x4A,0x9E,0x6E,0x86,0x60,0x76,0x5C,0x66,0x36,
+ 0x1C,0x4C,0x16,0x72,0x0E,0x00,0x0A,0x1A,0x02,0x00,
+ 0x00,0x00,0x00,0x06,0x0A,0x00,0x00,0x12,0x16,0x4E,
+ 0x22,0x20,0x72,0x56,0x64,0x4E,0x5E,0x9A,0x94,0x8E,
+ 0xA2,0x7A,0x7A,0x9A,0xAC,0xAE,0xA6,0xC2,0xAE,0xA6,
+ 0xBA,0x9E,0xDC,0x9E,0xC2,0x8E,0x6E,0x7C,0x80,0x9A,
+ 0x76,0x80,0x88,0x82,0xB0,0xD6,0x7E,0x94,0xBC,0xFC,
+ 0xD6,0xFF,0xF8,0xFF,0xE6,0xFF,0xB2,0xFC,0xBE,0xF4,
+ 0xFA,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,0xFF,0xD0,0xC8,
+ 0xAA,0xFF,0xDA,0xFF,0xC2,0xF0,0xEA,0xB0,0xD0,0xC8,
+ 0xEC,0xDE,0xF6,0xCA,0xEE,0xBE,0x8E,0x9E,0xBA,0x5E,
+ 0x8A,0xC8,0x9A,0xA8,0xDE,0x8C,0xB2,0x8A,0x96,0x70,
+ 0xA8,0x9A,0x92,0xAE,0xE6,0x82,0xA8,0x9E,0x22,0x5C,
+ 0x58,0x5E,0x30,0xA4,0x54,0x5E,0x32,0x6A,0x14,0x2C,
+ 0x6C,0x2C,0x36,0x00,0x00,0x00,0x00,0x4A,0x00,0x00,
+ 0x00,0x06,0x1C,0x00,0x06,0x00,0x14,0x00,0x32,0x20,
+ 0x40,0x4C,0x42,0x0A,0x2E,0x1C,0x0E,0x00,0x00,0x00,
+ 0x1A,0x00,0x00,0x00,0x00,0x00,0x1E,0x36,0x54,0x16,
+ 0x2A,0x12,0x2A,0x38,0x46,0x00,0x0C,0x24,0x1E,0x14,
+ 0x14,0x3C,0x18,0x3C,0x60,0x88,0x86,0x88,0x96,0xA6,
+ 0xBA,0x7C,0xBA,0x82,0xAC,0x82,0x84,0x80,0xA4,0x22,
+ 0xA4,0x8A,0xA2,0xC8,0xD6,0xBE,0xD6,0xB4,0xD4,0x9A,
+ 0xB6,0x98,0xA0,0xA6,0xB6,0xD0,0xAA,0xCC,0xC6,0xF6,
+ 0xE8,0xDC,0xDA,0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xEA,0xFF,0xF6,0xFF,0xEA,0xE4,0xF6,0xF8,0xD4,0xD2,
+ 0xDA,0xDA,0xFE,0xF4,0xD8,0xD0,0xDA,0xBE,0xF2,0xE0,
+ 0xDA,0xBA,0xDE,0xD6,0xC6,0xFF,0xC6,0xE2,0xB6,0xB6,
+ 0x9E,0xB8,0xA8,0xB8,0x70,0xBA,0x96,0xDE,0xB6,0xA6,
+ 0x8E,0x9A,0x82,0x5E,0x42,0x74,0x64,0x6C,0xA4,0x68,
+ 0x7A,0x74,0x6E,0x56,0x00,0x22,0x50,0x4E,0x3E,0x5C,
+ 0x62,0x4C,0x30,0x12,0x00,0x34,0x00,0x00,0x0A,0x0E,
+ 0x1C,0x44,0x3C,0x5A,0x2E,0x3E,0x06,0x20,0x00,0x0E,
+ 0x12,0x30,0x36,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x2E,0x30,0x5C,0x48,0x20,0x4C,0x28,
+ 0x0E,0x46,0x26,0x4C,0x2A,0x2C,0x54,0x40,0x26,0x00,
+ 0x34,0x58,0x64,0x40,0x62,0x18,0x46,0x58,0x3A,0x5A,
+ 0x2A,0x9A,0x6E,0x74,0xAC,0xBA,0xC8,0x9A,0xA0,0x98,
+ 0xB8,0xB4,0xCE,0xB6,0xD2,0x86,0xC0,0xA6,0xB6,0xDA,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xD0,0xBA,0xAA,0xF4,0xFA,
+ 0xDE,0xC4,0xDE,0xCA,0xEA,0xF2,0xFF,0xF6,0xE8,0xFF,
+ 0xFF,0xE8,0xE8,0xDC,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xE6,0xFF,0xEA,0xD8,
+ 0xCA,0xCA,0xC6,0xC2,0xE6,0xA0,0xC2,0x96,0x7E,0xAE,
+ 0x58,0x8A,0x5E,0x6A,0x82,0x84,0x44,0x5C,0x86,0x5C,
+ 0x8C,0x9A,0x80,0x86,0x86,0x4C,0x60,0x7E,0x50,0x4C,
+ 0x36,0x6E,0x44,0x40,0x1C,0x3A,0x14,0x02,0x20,0x1A,
+ 0x3C,0x3A,0x04,0x2C,0x0A,0x1E,0x26,0x00,0x00,0x02,
+ 0x00,0x00,0x02,0x00,0x00,0x14,0x0C,0x10,0x00,0x00,
+ 0x00,0x16,0x1A,0x24,0x40,0x50,0x6A,0x44,0x2E,0x2C,
+ 0x38,0x28,0x38,0x38,0x6E,0x6A,0x5C,0x7E,0x40,0x44,
+ 0x34,0x2E,0x28,0x74,0x44,0x2A,0x3A,0x5C,0x66,0x84,
+ 0x88,0x74,0x78,0x9E,0x9E,0x9E,0x82,0x9A,0x82,0xA6,
+ 0x66,0xB0,0x9A,0xA2,0xA6,0xEE,0xB8,0xD4,0xD6,0x96,
+ 0xC6,0xB8,0xB4,0xA8,0xE2,0xB0,0xC8,0xA6,0xD2,0xD2,
+ 0xD4,0xDE,0xF6,0xCA,0xD0,0xBA,0xB4,0xC0,0xB6,0xB6,
+ 0xC6,0x9C,0xD4,0xDA,0xC0,0xA6,0xC2,0xC0,0xD2,0xA8,
+ 0xBC,0xB2,0x98,0xCA,0x80,0xCA,0xB2,0xF6,0xE2,0xC2,
+ 0xBC,0xD6,0xAE,0x86,0xB8,0x8E,0xBA,0xB0,0x80,0x92,
+ 0x58,0x9C,0x7E,0x82,0x74,0x72,0x82,0x6C,0x8A,0x7C,
+ 0x9A,0x7E,0x7A,0x7C,0x92,0x7C,0x78,0x96,0x80,0x7E,
+ 0x64,0x54,0x5A,0x4C,0x62,0x64,0x70,0x3E,0x68,0x6E,
+ 0x78,0x7A,0x76,0x58,0x4C,0x46,0x40,0x3C,0x2E,0x38,
+ 0x34,0x44,0x4C,0x28,0x52,0x50,0x46,0x48,0x64,0x4E,
+ 0x4E,0x50,0x62,0x32,0x46,0x66,0x60,0x66,0x80,0x7E,
+ 0x60,0x60,0x7E,0x52,0x6A,0x66,0x60,0x48,0x5A,0x50,
+ 0x66,0x5C,0x6A,0x4E,0x52,0x48,0x54,0x72,0x60,0x7A,
+ 0x72,0x7A,0x76,0x78,0x7C,0x7C,0x64,0x8A,0x6E,0x78,
+ 0x84,0x8E,0x98,0xB6,0x98,0xB8,0x92,0xA2,0x8E,0x86,
+ 0x72,0x80,0x82,0x88,0x84,0x96,0x78,0x88,0x7E,0x8A,
+ 0x8E,0x76,0x9C,0x98,0x98,0x7E,0x90,0x70,0x76,0x8C,
+ 0xA2,0xA6,0x8C,0xB2,0xA0,0xAE,0x92,0xA6,0x90,0x88,
+ 0x9C,0xAE,0xA8,0xBA,0xBA,0xA4,0xBC,0x9E,0x7E,0x7E,
+ 0x7E,0x86,0x96,0x72,0xA0,0x86,0x84,0xB6,0x8E,0x96,
+ 0x8E,0x9A,0xA2,0x8A,0x8E,0x80,0x76,0x82,0x8A,0x7A,
+ 0x80,0x64,0x80,0x96,0xA2,0x9E,0xAA,0xAC,0xA4,0xA4,
+ 0xA2,0x80,0x74,0x74,0x6A,0x78,0x6A,0x74,0x7C,0x7A,
+ 0x7E,0x60,0x80,0x72,0x6A,0x76,0x7E,0x80,0x5A,0x78,
+ 0x74,0x66,0x72,0x76,0x8A,0x6A,0x66,0x78,0x6C,0x68,
+ 0x80,0x86,0x68,0x86,0x92,0x8E,0x88,0x74,0x64,0x38,
+ 0x4A,0x4E,0x54,0x6E,0x5E,0x82,0x6E,0x7A,0x6A,0x9C,
+ 0x6C,0x80,0x74,0x78,0x90,0x82,0x7A,0x78,0x60,0x5E,
+ 0x5E,0x70,0x72,0x62,0x64,0x74,0x68,0x86,0x7A,0x9A,
+ 0x78,0x9C,0x80,0x9E,0x7C,0x5A,0x66,0x96,0x7A,0x88,
+ 0x88,0x9A,0x70,0x86,0x6C,0x6A,0x7A,0x64,0x8E,0x80,
+ 0x84,0x7A,0x84,0x82,0x92,0x9A,0x9E,0x8A,0xA0,0x9E,
+ 0x84,0x90,0x98,0x6E,0x7A,0x74,0x82,0x86,0x80,0x8E,
+ 0x92,0x84,0x84,0x7A,0x92,0x94,0x94,0xAC,0x8C,0x8E,
+ 0x7C,0x8C,0x94,0x80,0x88,0x68,0x7E,0x74,0x8C,0x8E,
+ 0x74,0x92,0x92,0x8E,0x94,0x72,0x92,0x8E,0x72,0x88,
+ 0x8A,0x84,0x88,0x8A,0x96,0x82,0x8C,0x84,0x84,0x9A,
+ 0x70,0x68,0x80,0x7A,0x66,0x82,0x7C,0x78,0x78,0x7C,
+ 0x74,0x6E,0x72,0x78,0x7A,0x88,0x7E,0x82,0x84,0x80,
+ 0x84,0x7C,0x8A,0x72,0x76,0x80,0x7C,0x80,0x82,0x82,
+ 0x80,0x8C,0x8C,0x80,0x84,0x76,0x7E,0x6C,0x7A,0x78,
+ 0x7A,0x7E,0x74,0x70,0x68,0x70,0x72,0x74,0x70,0x76,
+ 0x74,0x86,0x76,0x98,0x84,0x80,0x7C,0x6E,0x7C,0x82,
+ 0x7A,0x8E,0x88,0x8A,0x76,0x84,0x7C,0x8E,0x70,0x8C,
+ 0x8C,0x7E,0x8E,0x82,0x7E,0x84,0x68,0x66,0x78,0x80,
+ 0x92,0x84,0x82,0x74,0x7E,0x72,0x76,0x6C,0x6A,0x72,
+ 0x76,0x86,0x8E,0x8E,0x8A,0x86,0x86,0x70,0x84,0x78,
+ 0x92,0x8E,0x8E,0x90,0x8C,0x8E,0x7E,0x82,0x7C,0x82,
+ 0x70,0x80,0x74,0x72,0x6C,0x74,0x76,0x70,0x6E,0x7E,
+ 0x80,0x78,0x7A,0x88,0x82,0x92,0x82,0x8A,0x80,0x7A,
+ 0x88,0x86,0x7E,0x8A,0x86,0x88,0x96,0x8E,0x82,0x8C,
+ 0x76,0x8C,0x84,0xA0,0x88,0x86,0x7C,0x8A,0x82,0x7C,
+ 0x8C,0x60,0x7C,0x82,0x76,0x86,0x80,0x78,0x76,0x72,
+ 0x7E,0x78,0x78,0x7E,0x80,0x6E,0x7E,0x7E,0x8C,0x9E,
+ 0x86,0x92,0x8E,0x96,0x7C,0x82,0x78,0x7C,0x8A,0x82,
+ 0x86,0x76,0x80,0x76,0x80,0x7E,0x82,0x78,0x7C,0x80,
+ 0x7E,0x88,0x80,0x7E,0x70,0x86,0x7A,0x80,0x7C,0x74,
+ 0x76,0x7E,0x74,0x6C,0x70,0x7A,0x7A,0x86,0x82,0x86,
+ 0x8A,0x8A,0x86,0x88,0x78,0x82,0x78,0x82,0x74,0x7A,
+ 0x7C,0x76,0x84,0x7C,0x7A,0x8A,0x7C,0x84,0x7E,0x7E,
+ 0x80,0x7E,0x82,0x7A,0x7A,0x7A,0x6E,0x76,0x78,0x6E,
+ 0x7A,0x7C,0x86,0x78,0x8A,0x82,0x78,0x8E,0x80,0x8A,
+ 0x86,0x8A,0x8C,0x84,0x94,0x88,0x8E,0x84,0x7A,0x78,
+ 0x7A,0x84,0x80,0x7E,0x7C,0x86,0x7C,0x86,0x82,0x7C,
+ 0x7A,0x7A,0x76,0x76,0x7A,0x7E,0x84,0x84,0x80,0x7A,
+ 0x7C,0x7C,0x80,0x84,0x80,0x8C,0x82,0x86,0x82,0x86,
+ 0x7E,0x80,0x7C,0x84,0x8A,0x82,0x7E,0x88,0x7C,0x82,
+ 0x7A,0x86,0x78,0x7C,0x72,0x84,0x7E,0x7C,0x72,0x80,
+ 0x82,0x82,0x84,0x86,0x82,0x82,0x80,0x80,0x78,0x7A,
+ 0x7A,0x82,0x7E,0x7A,0x7E,0x72,0x78,0x84,0x82,0x84,
+ 0x86,0x8E,0x7E,0x78,0x7E,0x78,0x7A,0x7A,0x84,0x8C,
+ 0x8A,0x86,0x86,0x7E,0x7A,0x74,0x80,0x88,0x7E,0x80,
+ 0x7E,0x74,0x80,0x80,0x88,0x7A,0x80,0x76,0x7C,0x7E,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample12[258]={
+ 0x6F,0x77,0x80,0x5F,0x41,0x80,0xE0,0xFF,0x3F,0x01,
+ 0xC0,0xFF,0x07,0xC0,0xBF,0x00,0xFE,0x07,0xE0,0x3F,
+ 0xC0,0x3F,0xC0,0x3F,0xE0,0x07,0xFF,0x00,0xFF,0x40,
+ 0x3F,0xFF,0x00,0xBF,0xE0,0x00,0xFF,0xC0,0x00,0xFF,
+ 0xF0,0x00,0x80,0xFF,0x20,0x00,0xFF,0xF0,0x00,0x0F,
+ 0xFF,0xF0,0x00,0x01,0xDF,0xFF,0x80,0x00,0x3F,0xFF,
+ 0xFC,0x50,0x00,0x3F,0xDF,0xFF,0xA0,0x20,0x03,0x5F,
+ 0xDF,0xFC,0xB0,0x50,0x2B,0x77,0xC7,0xCC,0x94,0x60,
+ 0x30,0x1F,0x5F,0xAF,0xC4,0xB0,0x84,0x60,0x30,0x18,
+ 0x37,0x77,0xA7,0xDB,0xD8,0xB4,0x80,0x54,0x35,0x3F,
+ 0x5F,0x87,0xAF,0xDB,0xDA,0xC0,0x9A,0x78,0x58,0x42,
+ 0x47,0x5F,0x80,0x9B,0xBB,0xD6,0xCA,0xB8,0xA0,0x84,
+ 0x68,0x4C,0x45,0x4D,0x5F,0x73,0x87,0x9F,0xAF,0xC7,
+ 0xBC,0xA8,0x9C,0x88,0x70,0x58,0x4C,0x4A,0x49,0x53,
+ 0x69,0x75,0x85,0x97,0xAD,0xB3,0xB2,0xAA,0xA0,0x90,
+ 0x80,0x70,0x5C,0x51,0x48,0x49,0x49,0x4F,0x5E,0x6B,
+ 0x7B,0x8D,0x97,0x9F,0xAB,0xB0,0xAE,0xA8,0xA0,0x94,
+ 0x8B,0x80,0x70,0x65,0x60,0x58,0x53,0x52,0x52,0x57,
+ 0x5F,0x69,0x6D,0x7D,0x83,0x8F,0x97,0x9E,0xA4,0xA6,
+ 0xAD,0xA8,0xA5,0xA2,0x9A,0x93,0x8B,0x82,0x79,0x70,
+ 0x72,0x65,0x60,0x5B,0x55,0x52,0x4F,0x56,0x53,0x57,
+ 0x5B,0x5F,0x65,0x6F,0x71,0x7B,0x83,0x8B,0x92,0x9B,
+ 0xA1,0xA7,0xB2,0xB6,0xB5,0xB5,0xB4,0xB0,0xAB,0xA4,
+ 0x9C,0x94,0x92,0x82,0x81,0x79,0x71,0x77,0x6D,0x68,
+ 0x67,0x61,0x5C,0x5E,0x59,0x5C,0x5C,0x63,0x69,0x6D,
+ 0x73,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample13[258]={
+ 0x77,0x7B,0x80,0x6F,0x60,0x80,0xAF,0xBF,0x5F,0x40,
+ 0x9F,0xBF,0x43,0x9F,0x9F,0x40,0xBE,0x43,0xAF,0x5F,
+ 0x9F,0x5F,0x9F,0x5F,0xAF,0x43,0xBF,0x40,0xBF,0x60,
+ 0x5F,0xBF,0x40,0x9F,0xAF,0x40,0xBF,0x9F,0x40,0xBF,
+ 0xB7,0x40,0x80,0xBF,0x50,0x40,0xBF,0xB7,0x40,0x47,
+ 0xBF,0xB7,0x40,0x40,0xAF,0xBF,0x80,0x40,0x5F,0xBF,
+ 0xBD,0x68,0x40,0x5F,0xAF,0xBF,0x90,0x50,0x41,0x6F,
+ 0xAF,0xBD,0x97,0x68,0x55,0x7B,0xA3,0xA5,0x8A,0x70,
+ 0x58,0x4F,0x6F,0x97,0xA1,0x97,0x82,0x70,0x58,0x4C,
+ 0x5B,0x7B,0x93,0xAD,0xAB,0x99,0x80,0x6A,0x5A,0x5F,
+ 0x6F,0x83,0x97,0xAD,0xAC,0x9F,0x8D,0x7C,0x6C,0x61,
+ 0x63,0x6F,0x80,0x8D,0x9D,0xAA,0xA4,0x9B,0x90,0x82,
+ 0x74,0x66,0x62,0x66,0x6F,0x79,0x83,0x8F,0x97,0xA3,
+ 0x9D,0x93,0x8E,0x84,0x78,0x6C,0x66,0x65,0x64,0x69,
+ 0x74,0x7A,0x82,0x8B,0x96,0x99,0x98,0x94,0x90,0x88,
+ 0x80,0x78,0x6E,0x68,0x64,0x64,0x64,0x67,0x6F,0x75,
+ 0x7D,0x86,0x8B,0x8F,0x95,0x97,0x96,0x93,0x90,0x8A,
+ 0x85,0x80,0x78,0x72,0x70,0x6C,0x69,0x69,0x69,0x6B,
+ 0x6F,0x74,0x76,0x7E,0x81,0x87,0x8B,0x8F,0x91,0x92,
+ 0x96,0x93,0x92,0x90,0x8D,0x89,0x85,0x81,0x7C,0x78,
+ 0x79,0x72,0x70,0x6D,0x6A,0x69,0x67,0x6B,0x69,0x6B,
+ 0x6D,0x6F,0x72,0x77,0x78,0x7D,0x81,0x85,0x89,0x8D,
+ 0x90,0x93,0x98,0x9A,0x9A,0x9A,0x99,0x97,0x95,0x91,
+ 0x8E,0x8A,0x89,0x81,0x80,0x7C,0x78,0x7B,0x76,0x74,
+ 0x73,0x70,0x6E,0x6F,0x6C,0x6E,0x6E,0x71,0x74,0x76,
+ 0x79,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample14[451]={
+ 0x96,0x9E,0x00,0xEE,0x78,0xFF,0xFF,0xFF,0x00,0xFF,
+ 0x7E,0xF6,0xD2,0x16,0x78,0xA0,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
+ 0x5A,0x64,0xA6,0xAA,0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFC,0xD6,0xAE,0x7C,0x4C,0x1A,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x0C,0x3A,0x5C,0x82,0xAE,0xE8,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xE4,0xDE,0xBE,0xA6,0x70,0x5E,0x36,0x12,0x04,
+ 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0E,
+ 0x28,0x2C,0x46,0x66,0x76,0x7C,0x72,0x82,0x9A,0xAA,
+ 0xAA,0xB4,0xCA,0xDA,0xEC,0xF4,0xF8,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,0xF8,0xD6,0xD8,0xD4,0xC8,0xB6,
+ 0xBA,0xA2,0x8C,0x8C,0x76,0x62,0x5E,0x56,0x38,0x24,
+ 0x20,0x20,0x0E,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
+ 0x06,0x0C,0x1C,0x1E,0x2E,0x3E,0x4A,0x5A,0x5E,0x74,
+ 0x82,0x8C,0xA0,0xAA,0xB8,0xBA,0xBE,0xC8,0xD2,0xD0,
+ 0xF6,0xE6,0xEE,0xFC,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFA,0xFF,0xFA,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFE,0xFF,0xF8,0xEC,0xFF,0xF0,0xF4,0xCE,
+ 0xD4,0xCA,0xCC,0xCE,0xBA,0xAA,0xB4,0x9E,0xAA,0x7A,
+ 0xBC,0x96,0xAC,0x9A,0x6E,0x84,0x80,0x72,0x6C,0x6A,
+ 0x72,0x6C,0x5A,0x58,0x68,0x4A,0x46,0x52,0x3A,0x3A,
+ 0x36,0x3E,0x36,0x30,0x24,0x24,0x0C,0x1E,0x02,0x16,
+ 0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x02,0x1A,0x16,0x22,0x28,
+ 0x38,0x52,0x5E,0x66,0x7E,0x7E,0x92,0x8E,0xA6,0xA2,
+ 0xAE,0xB0,0xBE,0xC0,0xC8,0xBC,0xCC,0xC6,0xC6,0xC8,
+ 0xCA,0xD0,0xC8,0xD6,0xC6,0xC6,0xD0,0xCE,0xD0,0xCE,
+ 0xCA,0xCE,0xCA,0xBC,0xC8,0xC4,0xC4,0xC4,0xBA,0xBC,
+ 0xB0,0xA6,0xBE,0xAE,0xC2,0x9A,0xB4,0x98,0x88,0xA0,
+ 0xA0,0xA2,0x9A,0x90,0xA6,0x9A,0x98,0x7E,0x80,0x8C,
+ 0x90,0x7E,0x86,0x84,0x78,0x6C,0x6A,0x6A,0x64,0x78,
+ 0x84,0x5C,0x82,0x72,0x7A,0x62,0x84,0x80,0x94,0x96,
+ 0x8E,0x96,0x94,0x92,0xAE,0x90,0xB0,0x92,0xB6,0xA2,
+ 0x9C,0x88,0x96,0x86,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample15[1795]={
+ 0x80,0x80,0x7A,0x80,0x7C,0xD4,0xFF,0xCE,0x44,0x00,
+ 0x00,0x00,0x7C,0x0A,0xFF,0xDE,0xDE,0xFF,0xFF,0xA4,
+ 0x82,0xDE,0xCE,0x08,0x72,0x00,0x94,0x98,0x00,0x00,
+ 0x12,0x00,0x42,0x2A,0x5E,0x38,0x9A,0xEE,0x5E,0x72,
+ 0xE6,0xFF,0xFF,0xFF,0xFF,0xEE,0x7A,0x0E,0x00,0x00,
+ 0x00,0x3A,0x1A,0x00,0x12,0x10,0x46,0xE6,0xE8,0xFF,
+ 0xF0,0xFF,0xFF,0xF6,0x94,0xAA,0x68,0x32,0x00,0x00,
+ 0x4E,0x6C,0x32,0x7E,0xB2,0x72,0x5C,0x10,0x00,0x22,
+ 0x86,0xB8,0xFF,0x96,0xFF,0xFF,0x58,0xDE,0xFA,0xFF,
+ 0xFF,0x88,0x1C,0x00,0x00,0x00,0xA6,0x44,0x16,0x14,
+ 0x8A,0x3C,0xA4,0x62,0xFF,0xFF,0xFF,0xFF,0xB0,0x68,
+ 0x52,0x7A,0x6C,0x9C,0x4E,0xB6,0x94,0x3C,0x00,0x00,
+ 0x00,0x04,0x74,0xC6,0xBA,0x6C,0x44,0x4A,0xC2,0xF2,
+ 0xFF,0xD6,0xFF,0xF6,0xD8,0xFF,0xB2,0x80,0x48,0x00,
+ 0x00,0x00,0x00,0x00,0x0E,0x82,0xF8,0xD6,0xB2,0xCE,
+ 0x5E,0x9E,0xFE,0xFF,0xCA,0xC6,0x9C,0x7C,0x5A,0x62,
+ 0x04,0x00,0x6C,0x78,0x9A,0x80,0x44,0x12,0x3A,0x06,
+ 0x50,0x4C,0x7C,0xC0,0xEC,0xC4,0x76,0xFF,0xFF,0xFF,
+ 0xEA,0xB8,0x76,0x44,0x76,0x2C,0x42,0x00,0x1E,0x00,
+ 0x0E,0x4C,0x84,0x72,0x34,0x88,0xBA,0xFA,0xF2,0xFF,
+ 0xF6,0xAE,0xD6,0xB4,0x72,0x68,0x72,0x0A,0x32,0x94,
+ 0x90,0x54,0x5A,0x00,0x14,0x0E,0x3E,0x76,0x94,0x84,
+ 0x9A,0x9E,0xA4,0xE6,0xA4,0xEC,0xDE,0xFF,0xFF,0xA0,
+ 0xA6,0x3A,0x24,0x14,0x00,0x00,0x00,0x18,0x3C,0x82,
+ 0xCC,0xD4,0xD0,0xA8,0xA8,0xB8,0xD6,0xDC,0x90,0x86,
+ 0x84,0x58,0x4E,0x54,0x9A,0x9E,0x8A,0xAE,0x52,0x26,
+ 0x58,0x36,0x24,0x12,0x0A,0x66,0xAE,0xF2,0xD8,0xFF,
+ 0xD8,0x96,0x92,0x3C,0x7E,0xAE,0x88,0x8A,0x7E,0x82,
+ 0x94,0x22,0x28,0x18,0x04,0x22,0x18,0x92,0x60,0xA6,
+ 0xA6,0x9C,0xAA,0xFF,0xF0,0xE4,0xE0,0x7A,0x96,0x84,
+ 0x52,0x1A,0x00,0x00,0x32,0x06,0x82,0xA2,0x8C,0x52,
+ 0x9A,0x72,0x9E,0xA6,0xE6,0xE2,0xE8,0x60,0x72,0x90,
+ 0x7A,0x92,0x80,0x78,0xAE,0xC0,0x7C,0x5E,0x1A,0x00,
+ 0x0E,0x26,0x18,0x58,0x94,0xD4,0xFF,0xFF,0xFE,0xDE,
+ 0x1C,0x30,0x4C,0xD0,0x92,0x90,0x14,0x40,0x70,0xFF,
+ 0xBC,0x9A,0x6E,0x32,0x56,0x44,0x1C,0x6E,0x8E,0x96,
+ 0x98,0x62,0x3A,0xA4,0x84,0xD6,0xD8,0x8E,0xC0,0xE2,
+ 0xCA,0xE2,0x6E,0x38,0x12,0x00,0x52,0x52,0x5A,0x12,
+ 0x3A,0x86,0x8C,0x92,0x7A,0xA4,0x82,0xD2,0xC0,0x80,
+ 0x98,0xD8,0xD8,0x78,0x78,0xAA,0x86,0x2E,0x54,0x4A,
+ 0x32,0x0C,0x72,0x62,0x22,0x58,0x62,0xBC,0xE0,0xB4,
+ 0x86,0xC2,0xD8,0xF0,0xFF,0xC4,0xB2,0xA4,0x84,0x08,
+ 0x00,0x00,0x00,0x08,0x50,0x5E,0xDE,0xFF,0xE2,0xA0,
+ 0x90,0x9A,0x80,0xB0,0xAC,0x9E,0xBA,0xD4,0x4A,0x24,
+ 0x00,0x00,0x36,0x9E,0xBC,0xB4,0xA8,0xAA,0x82,0x00,
+ 0x0C,0xA4,0xB2,0x8A,0x90,0x80,0x60,0x54,0xB4,0xEE,
+ 0xFC,0xA2,0x76,0x8A,0x6A,0xCE,0x76,0x3E,0x00,0x00,
+ 0x00,0x34,0x86,0xDC,0xFF,0xEE,0xDA,0xE6,0x4C,0x44,
+ 0xE0,0xB8,0xFF,0xBC,0x56,0x38,0x3C,0x40,0x26,0x32,
+ 0x00,0x00,0x34,0x1E,0x4A,0x84,0xB6,0xFF,0xFC,0xEE,
+ 0xE6,0xD0,0x84,0x80,0xCE,0xBA,0xAA,0xAA,0x5C,0x4E,
+ 0x32,0x00,0x10,0x00,0x2C,0x52,0x54,0x86,0x5E,0x8A,
+ 0xA2,0xFF,0xFF,0xBC,0xBE,0xE6,0x74,0xAE,0x94,0xBA,
+ 0x56,0x00,0x36,0x72,0x56,0x3E,0x30,0x3A,0x78,0xBA,
+ 0xC6,0x56,0x7A,0xC0,0x62,0x74,0xE4,0xC2,0xC8,0x80,
+ 0x44,0x7C,0xFF,0xFF,0x6C,0x4E,0x00,0x28,0x0C,0x00,
+ 0x1C,0x8E,0xB0,0xFF,0xF0,0x4C,0x7A,0xA0,0xB4,0xA6,
+ 0x70,0xAC,0x9A,0xA6,0x88,0x6E,0x2E,0x42,0x06,0x00,
+ 0x1C,0x7C,0xC6,0xCE,0xDA,0x82,0x56,0x76,0x9E,0xAE,
+ 0xAE,0xFF,0xFE,0x80,0x5C,0x2E,0x42,0x9E,0x82,0x38,
+ 0x00,0x04,0x62,0x62,0x74,0x58,0x80,0x50,0xA8,0x96,
+ 0xEE,0xFF,0xFF,0xE6,0x88,0x48,0x38,0x40,0x62,0x1E,
+ 0x2C,0x58,0x5A,0x48,0x52,0x26,0x80,0x7A,0x76,0x6E,
+ 0xEE,0xFF,0xD0,0xC6,0x7A,0xD6,0xE0,0xC2,0xAA,0x58,
+ 0x1A,0x68,0x5C,0x20,0x3A,0x46,0x26,0x30,0x26,0x3A,
+ 0x52,0x9A,0x9A,0xA8,0xFF,0xFF,0xFF,0xFF,0xB8,0x56,
+ 0x66,0x60,0x26,0x02,0x00,0x00,0x0A,0x4A,0x9E,0x4E,
+ 0x6C,0x90,0xB2,0xCC,0xC4,0x8A,0xB2,0xA6,0xB8,0xCC,
+ 0xCA,0x66,0x72,0x86,0x4E,0x12,0x4C,0x70,0x34,0x34,
+ 0x8A,0xC2,0xE0,0xD6,0x1E,0x00,0x2A,0x82,0xB6,0xE2,
+ 0xFF,0xFF,0xD4,0x6A,0x2A,0x6E,0x7A,0x6A,0x5E,0x1A,
+ 0x00,0x0A,0x72,0x96,0xA8,0xDC,0xD8,0xA0,0x84,0x76,
+ 0x9E,0x7E,0x70,0x62,0x9A,0xB6,0x8A,0x76,0x32,0x66,
+ 0x42,0x60,0x72,0x6E,0x6C,0xA0,0xA0,0xAC,0xB2,0x86,
+ 0x8A,0x5C,0x7C,0x5C,0x70,0x88,0xA0,0xB4,0xA0,0x86,
+ 0x84,0x6C,0x72,0x5C,0x2C,0x54,0x56,0x6A,0x7C,0x80,
+ 0x84,0x98,0xC0,0xBC,0xA2,0x86,0xA6,0x82,0x72,0x64,
+ 0x40,0x80,0x6E,0x4C,0x6E,0x8E,0x9A,0xA8,0x72,0x5A,
+ 0x6C,0x9C,0xA0,0x86,0x68,0x60,0x74,0x7C,0x90,0xAA,
+ 0x78,0x50,0x54,0x60,0xAC,0xE0,0xA2,0x96,0x5A,0x56,
+ 0x58,0x92,0x82,0x3A,0x44,0x76,0x90,0xAE,0xA4,0xC4,
+ 0x90,0x8A,0x6A,0x46,0x46,0x54,0x8A,0x9A,0x8C,0x80,
+ 0x5C,0x6E,0x78,0x80,0xA8,0xB6,0xAA,0x9E,0x62,0x5C,
+ 0x46,0x6C,0x58,0x84,0x74,0x64,0x8A,0x92,0xAA,0x7A,
+ 0xA0,0xBC,0x54,0x44,0x84,0xA0,0xD2,0x8A,0x16,0x2C,
+ 0x84,0xBE,0x8C,0x88,0x7C,0x6E,0x8C,0xA2,0xA4,0x6A,
+ 0x46,0x4A,0x56,0x54,0x8A,0xA4,0xC2,0x9E,0x7C,0x7E,
+ 0x9C,0xB2,0xA8,0x86,0x6C,0x68,0x7A,0x62,0x4C,0x44,
+ 0x36,0x4C,0x6E,0xAC,0xA0,0xBA,0xB6,0x9A,0x88,0x86,
+ 0x88,0x8E,0x52,0x6A,0x74,0x6A,0x7A,0x7E,0x9C,0x88,
+ 0x4C,0x50,0x86,0xA2,0xC0,0x7C,0x62,0x4C,0x40,0x80,
+ 0xA2,0x84,0x5C,0x82,0x9A,0x7A,0xAC,0xAA,0x84,0x7A,
+ 0x9A,0x98,0x7E,0x60,0x52,0x70,0x58,0x4A,0x52,0x6C,
+ 0x94,0xA2,0x9C,0xB2,0xAE,0xA8,0x98,0x72,0x64,0x50,
+ 0x68,0x8C,0x8C,0x6E,0x64,0x70,0x82,0x8E,0x74,0x6E,
+ 0x80,0x6C,0x80,0x82,0x94,0xA2,0x60,0x4C,0x58,0x70,
+ 0x9A,0x8E,0x92,0x8C,0x86,0xA0,0xAA,0x9E,0x8E,0x58,
+ 0x44,0x36,0x50,0x52,0x7A,0x94,0x7E,0x9C,0x9E,0xB8,
+ 0x96,0x8A,0x5C,0x60,0x86,0x9A,0x94,0x8A,0x70,0x48,
+ 0x58,0x62,0x64,0x8A,0x9E,0x98,0xA8,0x94,0x90,0x6A,
+ 0x62,0x54,0x5E,0x90,0xAE,0x8E,0x6A,0x7E,0x82,0x6C,
+ 0x68,0x8E,0x92,0x88,0x6C,0x76,0x88,0x64,0x7C,0x70,
+ 0x80,0x66,0x8C,0x80,0x76,0x90,0x94,0x98,0x8C,0x76,
+ 0x76,0x68,0x68,0x6C,0x82,0x92,0x72,0x8A,0x7C,0x72,
+ 0x6C,0x48,0x7E,0xAA,0xAE,0xAC,0x86,0x80,0x64,0x5E,
+ 0x6A,0x88,0x70,0x72,0x94,0xAA,0xAA,0x8C,0x70,0x5E,
+ 0x5A,0x6C,0x70,0x84,0x90,0x7A,0x7C,0x60,0x6C,0x80,
+ 0x8A,0x7A,0x8A,0x92,0x96,0x90,0x8A,0x80,0x74,0x6E,
+ 0x60,0x66,0x7C,0x80,0x82,0x70,0x70,0x5C,0x7C,0x98,
+ 0x90,0x94,0x8A,0x8C,0x84,0x88,0x80,0x6C,0x58,0x7A,
+ 0x7E,0x78,0x86,0x90,0xA2,0xA2,0x96,0x7E,0x50,0x44,
+ 0x54,0x62,0x72,0x96,0xB2,0x94,0x92,0x68,0x60,0x84,
+ 0x88,0x90,0x94,0x7C,0x82,0x82,0x76,0x6A,0x6E,0x82,
+ 0x84,0x80,0x6C,0x74,0x6E,0x76,0x76,0x86,0x84,0x86,
+ 0x7C,0x7A,0x76,0x88,0x9C,0x76,0x8A,0x88,0x8E,0x8A,
+ 0x80,0x86,0x88,0x5E,0x50,0x40,0x6C,0x96,0x9E,0x94,
+ 0x7E,0x7A,0x86,0x7A,0x80,0x76,0x88,0x90,0x78,0x78,
+ 0x6C,0x80,0x8A,0x98,0x74,0x7C,0x72,0x60,0x8A,0x90,
+ 0x6C,0x70,0x78,0x78,0x92,0x92,0x7E,0x74,0x8A,0x84,
+ 0x6C,0x74,0x7E,0x7A,0x88,0x82,0x86,0x78,0x7C,0x80,
+ 0x72,0x80,0x82,0x76,0x7C,0x68,0x62,0x64,0x8C,0x9C,
+ 0x90,0xA0,0x92,0x72,0x6C,0x6C,0x7E,0x92,0x7A,0x76,
+ 0x68,0x74,0x8C,0x90,0x72,0x5C,0x74,0x94,0x9E,0x8E,
+ 0x7A,0x90,0x80,0x68,0x72,0x7E,0x7E,0x7C,0x74,0x68,
+ 0x76,0x7C,0x80,0x94,0x8C,0x98,0x8C,0x84,0x5E,0x60,
+ 0x7E,0x80,0x64,0x7A,0x90,0x8E,0x80,0x78,0x76,0x70,
+ 0x76,0x76,0x7C,0x94,0x82,0x7C,0x76,0x7C,0x68,0x80,
+ 0x72,0x80,0x7E,0x7A,0x8A,0x84,0x86,0x96,0x94,0x7E,
+ 0x62,0x62,0x70,0x80,0x76,0x86,0x70,0x80,0x88,0x6C,
+ 0x84,0x80,0x84,0x8A,0x86,0x8A,0x80,0x8E,0x80,0x76,
+ 0x6E,0x70,0x7A,0x7A,0x78,0x7E,0x7E,0x84,0x7A,0x84,
+ 0x92,0x7C,0x7A,0x80,0x86,0x76,0x7A,0x72,0x72,0x78,
+ 0x7E,0x80,0x7C,0x74,0x72,0x84,0x94,0x8E,0x88,0x78,
+ 0x64,0x72,0x7A,0x72,0x7A,0x80,0x7A,0x7A,0x7E,0x80,
+ 0x84,0xA0,0x8C,0x82,0x7C,0x78,0x78,0x78,0x7E,0x76,
+ 0x76,0x72,0x8E,0x8A,0x84,0x82,0x7C,0x7C,0x72,0x76,
+ 0x80,0x78,0x84,0x86,0x86,0x82,0x86,0x88,0x8C,0x82,
+ 0x6C,0x68,0x76,0x70,0x76,0x80,0x98,0x8A,0x80,0x6E,
+ 0x68,0x7A,0x82,0x82,0x84,0x80,0x8A,0x88,0x76,0x74,
+ 0x76,0x86,0x88,0x7E,0x7C,0x76,0x80,0x90,0x7A,0x74,
+ 0x6E,0x78,0x84,0x86,0x8E,0x88,0x82,0x78,0x80,0x82,
+ 0x7C,0x80,0x82,0x78,0x7A,0x80,0x80,0x82,0x7C,0x76,
+ 0x7C,0x78,0x80,0x88,0x82,0x8A,0x8A,0x84,0x72,0x6C,
+ 0x6C,0x6E,0x72,0x84,0x9A,0x90,0x88,0x82,0x70,0x66,
+ 0x68,0x82,0x84,0x80,0x80,0x7E,0x80,0x82,0x80,0x80,
+ 0x84,0x78,0x78,0x7C,0x84,0x88,0x7A,0x7A,0x7A,0x7E,
+ 0x7E,0x8A,0x86,0x82,0x78,0x80,0x84,0x74,0x72,0x78,
+ 0x86,0x8C,0x82,0x7C,0x84,0x82,0x7A,0x70,0x72,0x88,
+ 0x88,0x86,0x76,0x6E,0x78,0x90,0x80,0x70,0x78,0x74,
+ 0x84,0x7C,0x80,0x82,0x78,0x7E,0x82,0x82,0x7A,0x7E,
+ 0x80,0x80,0x78,0x7E,0x78,0x76,0x84,0x7E,0x78,0x7A,
+ 0x82,0x82,0x80,0x8A,0x84,0x82,0x84,0x7A,0x78,0x78,
+ 0x78,0x7E,0x86,0x82,0x7A,0x7E,0x7E,0x78,0x78,0x7C,
+ 0x82,0x86,0x80,0x80,0x80,0x84,0x80,0x76,0x7A,0x74,
+ 0x7A,0x7C,0x82,0x88,0x82,0x7A,0x7A,0x76,0x7A,0x7E,
+ 0x80,0x86,0x7C,0x78,0x74,0x84,0x82,0x7E,0x7C,0x7A,
+ 0x7E,0x78,0x7C,0x88,0x8E,0x82,0x7A,0x7A,0x7A,0x74,
+ 0x7C,0x84,0x84,0x7C,0x80,0x80,0x78,0x72,0x78,0x88,
+ 0x88,0x84,0x82,0x76,0x72,0x7A,0x82,0x84,0x94,0x88,
+ 0x76,0x6E,0x68,0x74,0x84,0x8A,0x82,0x80,0x7A,0x72,
+ 0x78,0x80,0x84,0x7C,0x88,0x82,0x7E,0x76,0x74,0x7A,
+ 0x7E,0x7E,0x80,0x80,0x7E,0x82,0x82,0x80,0x7A,0x78,
+ 0x80,0x78,0x7C,0x80,0x86,0x82,0x82,0x7E,0x7C,0x86,
+ 0x7C,0x7C,0x7A,0x82,0x88,0x7E,0x7A,0x70,0x76,0x7E,
+ 0x84,0x84,0x7E,0x82,0x7E,0x80,0x76,0x7A,0x78,0x82,
+ 0x86,0x7C,0x7C,0x80,0x82,0x7C,0x7A,0x7C,0x74,0x7C,
+ 0x86,0x82,0x7E,0x7C,0x7E,0x7E,0x7C,0x86,0x80,0x84,
+ 0x84,0x7E,0x7C,0x7E,0x7C,0x7A,0x7C,0x7E,0x7C,0x82,
+ 0x82,0x7E,0x7A,0x7C,0x7E,0x80,0x7E,0x7A,0x7E,0x7C,
+ 0x80,0x86,0x7C,0x74,0x7E,0x7E,0x7E,0x84,0x80,0x7E,
+ 0x7C,0x74,0x78,0x7E,0x86,0x82,0x7A,0x76,0x7A,0x84,
+ 0x7C,0x80,0x84,0x84,0x82,0x78,0x78,0x7A,0x84,0x84,
+ 0x76,0x7E,0x78,0x7E,0x80,0x80,0x7C,0x7E,0x78,0x7E,
+ 0x7C,0x78,0x82,0x88,0x80,0x7A,0x72,0x7A,0x80,0x7E,
+ 0x86,0x82,0x84,0x82,0x78,0x78,0x78,0x72,0x7A,0x8A,
+ 0x86,0x7E,0x7C,0x7A,0x7C,0x7C,0x82,0x84,0x82,0x80,
+ 0x74,0x76,0x7A,0x82,0x80,0x7E,0x80,0x7C,0x7E,0x82,
+ 0x80,0x80,0x7E,0x80,0x7C,0x7C,0x7E,0x7C,0x80,0x84,
+ 0x80,0x7E,0x7A,0x7C,0x78,0x7A,0x84,0x84,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample16[271]={
+ 0x6A,0x1E,0x20,0x00,0x00,0x14,0x5A,0x9A,0xAA,0xBC,
+ 0xFF,0xFF,0xFF,0xFF,0xFE,0xBE,0xFF,0xFF,0x00,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0x9A,0x34,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x6C,0xB8,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,0xDA,0xA2,0x40,0x00,0x00,0x00,0x00,
+ 0x00,0x00,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,0x42,0x6C,0xA6,
+ 0xCE,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,0xE4,0xC4,0xBE,0xC4,0x9E,0x92,0x86,
+ 0x74,0x64,0x4E,0x2C,0x18,0x1A,0x06,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x10,0x0C,0x24,0x40,0x42,0x54,0x54,0x5C,
+ 0x70,0x76,0x86,0x88,0x92,0x98,0x96,0x98,0xA6,0xC4,
+ 0xB4,0xC2,0xBC,0xB6,0xD0,0xCA,0xBE,0xB6,0xC4,0xB6,
+ 0xAE,0xAA,0xB6,0xAC,0x9E,0x94,0x8E,0x96,0x8E,0x8E,
+ 0x8E,0x8A,0x94,0x8A,0x94,0x94,0x9A,0xA2,0x9E,0xAC,
+ 0xA4,0xB2,0xB8,0xBC,0xBE,0xCC,0xCC,0xDE,0xCC,0xD2,
+ 0xDE,0xDC,0xDC,0xCC,0xD6,0xEE,0xE2,0xDA,0xD8,0xDA,
+ 0xC8,0xC8,0xB8,0xC4,0xBC,0xA6,0x9E,0x94,0x8E,0x86,
+ 0x82,0x6C,0x70,0x66,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample17[633]={
+ 0x34,0x14,0x92,0xCE,0xFF,0xFF,0xCC,0xFF,0x00,0xFF,
+ 0xFF,0xFF,0xF0,0x00,0x56,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x32,0x00,0x20,0x60,0x7C,0xD0,0xEE,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCE,
+ 0x94,0x02,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xD8,0xB0,0xE6,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0x8A,0x82,0x58,0x10,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x2A,0x50,0xA2,0x66,0xFF,
+ 0xFF,0xB2,0xFF,0xE4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xEC,0xFF,0xB2,0x96,0x36,0x1A,0x12,0x00,0x0E,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,
+ 0x00,0xE2,0x3C,0xFF,0xFF,0xFF,0xC8,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xD2,0xF4,0x64,0x64,0x9E,0x06,
+ 0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,
+ 0x00,0x5E,0x0A,0xFF,0xAC,0xFF,0xFF,0xFF,0xF6,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xCE,0xFF,0xF4,0xAA,0x8C,
+ 0x70,0x48,0x00,0x00,0x2A,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x76,0x00,0x00,0x6E,0x70,0xC6,0xFF,0xFF,
+ 0xFF,0xAC,0xB8,0xFF,0xFF,0xFF,0xFF,0x42,0x70,0xFF,
+ 0xAE,0x00,0x78,0x86,0x00,0x00,0xA6,0x20,0x98,0x00,
+ 0x00,0xFF,0x24,0x00,0x12,0x00,0xA4,0x24,0x00,0x48,
+ 0xEA,0xF8,0xB6,0xC4,0xFF,0xFF,0xF4,0xC8,0xFF,0x8A,
+ 0xB6,0x8C,0xA8,0x6A,0xA2,0xA8,0x94,0xA0,0x54,0x72,
+ 0xF6,0x00,0x00,0xB0,0x6C,0x00,0x00,0x34,0x76,0x0E,
+ 0xE4,0x3C,0xC8,0x72,0x74,0xF4,0x3C,0x42,0xFF,0x84,
+ 0x90,0x8E,0xEC,0x84,0xE6,0xAC,0x48,0x78,0xFF,0x10,
+ 0x82,0xFA,0x58,0xC2,0xF2,0x82,0x1A,0x00,0x88,0xF6,
+ 0xEE,0xA4,0x64,0x38,0x44,0x3E,0xB6,0x2C,0x20,0x94,
+ 0x2E,0x12,0x82,0xA4,0x2C,0x5E,0xD2,0xF0,0x26,0x82,
+ 0xFF,0xB6,0xA2,0xB0,0x50,0xFF,0xFF,0x90,0xFF,0x94,
+ 0x38,0x74,0x82,0x32,0x70,0xE8,0x82,0x9E,0x2A,0x00,
+ 0x34,0x32,0x4C,0x48,0x40,0x30,0x14,0x70,0x86,0xBA,
+ 0x18,0x74,0xFF,0x74,0x14,0xF0,0x60,0x5E,0xB0,0x9C,
+ 0xC6,0xFF,0xDC,0x84,0xC0,0x94,0xB8,0x6E,0xA6,0xC8,
+ 0x8A,0x94,0x94,0xFF,0x32,0x78,0x36,0x80,0x2A,0x52,
+ 0x10,0x48,0x3A,0x00,0x5C,0x78,0x84,0x74,0x78,0x62,
+ 0x40,0xBE,0xC8,0xCE,0xFF,0x8E,0xC2,0xB0,0x8E,0xFF,
+ 0x54,0x6A,0xD2,0xFF,0xA0,0x32,0x38,0xBE,0x4A,0x14,
+ 0x2A,0x2A,0x74,0x3C,0x66,0x00,0x00,0x0C,0x4A,0x82,
+ 0x52,0x84,0xC8,0xC2,0x80,0xA2,0xBA,0x9E,0xF4,0xCC,
+ 0x90,0xD2,0xBC,0xE8,0xD8,0xC8,0xB0,0x32,0x98,0x6A,
+ 0x0A,0x88,0x78,0x52,0x66,0x00,0x46,0x6E,0x0A,0x5A,
+ 0x2A,0x60,0x70,0x64,0x2C,0xBA,0x6E,0x56,0xA6,0x9C,
+ 0x96,0xA8,0x9C,0x76,0x9C,0xD2,0x24,0xB8,0x90,0xBA,
+ 0x50,0xDA,0x84,0x94,0x6E,0x64,0xF4,0x78,0x5C,0x90,
+ 0x90,0x44,0x70,0x66,0x20,0x40,0xC2,0x14,0x38,0x94,
+ 0x5C,0xB6,0x4A,0x7C,0x78,0x42,0x40,0x5C,0xBC,0x72,
+ 0x8C,0xF4,0x74,0xB6,0x98,0x94,0xD0,0xA0,0x78,0xEA,
+ 0x84,0xF8,0x76,0x5C,0xB0,0x92,0x7E,0x5A,0x58,0xA8,
+ 0x6C,0x24,0x0C,0x52,0x40,0x74,0x8C,0x20,0x00,0x44,
+ 0x46,0x92,0x44,0x90,0x96,0x3C,0xDC,0xA8,0x62,0xC2,
+ 0xBC,0xDC,0xD0,0xB8,0xA4,0xA0,0xBE,0xE6,0x9A,0x42,
+ 0x2C,0x54,0xA2,0xAA,0xB0,0x7A,0x00,0x88,0x74,0x32,
+ 0x22,0x94,0x1A,0x46,0x56,0x9A,0x8A,0x00,0x7E,0x76,
+ 0x7A,0x56,0x6C,0x9C,0xE2,0x4C,0xD8,0xC8,0x84,0xC0,
+ 0xD2,0x9A,0xF2,0xAC,0xCA,0x9C,0x80,0xC6,0xC8,0x18,
+ 0x7E,0x82,0x34,0x62,0x4E,0x5E,0x38,0x7A,0x8E,0x3A,
+ 0x4C,0x2E,0x36,0x78,0x54,0x24,0x5C,0x46,0x80,0x96,
+ 0x54,0x8A,0xA2,0xC0,0xE6,0x9E,0xA0,0xEE,0xE0,0xE2,
+ 0x8E,0xFF,0x6E,0xE0,0x70,0x82,0xBC,0x40,0x70,0x3C,
+ 0x90,0x06,0x34,0x7A,0x4A,0x52,0x38,0x48,0x76,0x48,
+ 0x70,0x00,0x50,0x7E,0x8C,0x6E,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,};
+static ymu8 sample18[1379]={
+ 0xF4,0xFF,0xFF,0xFF,0xFF,0xEA,0x00,0x4A,0x00,0x00,
+ 0x00,0x84,0x00,0xB4,0xA6,0xD8,0xFF,0xEA,0x82,0x0C,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x2E,0x74,0x44,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,
+ 0x10,0xAA,0xF4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xEC,0xD2,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x14,0x82,0xE8,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xBA,0x9E,0x3A,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xBC,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x40,0x50,0xB0,0xE2,0xBC,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x5C,0x14,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,
+ 0x52,0xB6,0xD6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xD2,0x82,0x20,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x64,0xBA,0xF6,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB8,
+ 0xD4,0x78,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x32,0x22,0x36,0xD2,0xBC,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE2,0x7E,0x20,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x42,0x7A,0xD0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xD6,0xEA,0x50,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x84,0x8A,
+ 0xC6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF4,
+ 0xC8,0xC0,0x94,0x36,0x04,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x04,0x26,0x7C,0x98,0xC2,
+ 0xFF,0xFF,0xFF,0xE8,0xF4,0xA4,0xC2,0xAC,0xB0,0x94,
+ 0xE4,0x82,0xB4,0xA4,0x98,0x72,0x86,0x60,0x46,0x64,
+ 0x2C,0x00,0x0A,0x00,0x00,0x0C,0x24,0x00,0x42,0x5E,
+ 0x9A,0xAA,0xC0,0xFF,0xC0,0xF6,0xA0,0xC4,0xAA,0xA4,
+ 0x98,0xB8,0xB8,0xDE,0xDE,0xAC,0x8E,0x96,0x58,0x4A,
+ 0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,
+ 0x64,0xB0,0xCE,0xD8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xF2,0xE6,0xC2,0x7C,0x74,0x52,0x24,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x3A,
+ 0x92,0xBA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xCE,0xBC,0x6C,0x4C,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x48,0x42,
+ 0x84,0xB2,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,
+ 0xF8,0xC6,0xCC,0xA6,0x5A,0x44,0x3C,0x18,0x0E,0x10,
+ 0x00,0x00,0x00,0x00,0x0C,0x1C,0x38,0x56,0x64,0x40,
+ 0x6C,0x4A,0x72,0x62,0x96,0xBC,0xC8,0xDA,0xAE,0xB6,
+ 0x98,0xA6,0xA8,0xBC,0x94,0xA4,0xBE,0xBC,0xA2,0xA0,
+ 0x7A,0x32,0x2A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x08,0x00,0x36,0x46,0x92,0x7C,0xB4,0xB4,0xD2,0xF4,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE2,0xF8,0xDC,0x96,
+ 0x8C,0x76,0x24,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x02,0x0E,0x2C,0x38,0x58,0x80,0xA4,0xD6,0xDE,
+ 0xFF,0xE0,0xFF,0xFF,0xFF,0xFC,0xDC,0xBA,0x80,0x94,
+ 0x12,0x46,0x30,0x28,0x2A,0x50,0x3E,0x48,0x34,0x2A,
+ 0x38,0x2A,0x1C,0x58,0x3A,0x38,0x44,0x56,0x4C,0x68,
+ 0x84,0x78,0x9A,0x8C,0xB8,0xB8,0xAA,0xB0,0xB2,0xA4,
+ 0xA2,0x8E,0x88,0x60,0x84,0x7A,0x78,0x8E,0x64,0x7C,
+ 0x46,0x34,0x44,0x32,0x34,0x36,0x38,0x6A,0x22,0x44,
+ 0x54,0x50,0x5A,0x50,0x3C,0x42,0x5C,0x7C,0x8A,0xB2,
+ 0xC8,0xD8,0xFE,0xE0,0xF0,0xE2,0xB4,0xC0,0xBC,0xA0,
+ 0x9E,0x6E,0x8A,0x54,0x70,0x48,0x34,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x10,0x34,0x5E,0x64,0xB4,0xA6,0xD8,
+ 0xC8,0xFF,0xD8,0xFF,0xE8,0xFF,0xDC,0xD0,0xDC,0xA4,
+ 0x8E,0x7C,0x7E,0x6E,0x3E,0x10,0x10,0x02,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x2E,0x3A,0x7C,0x88,
+ 0x9A,0xD0,0xDE,0xF8,0xFF,0xFF,0xFF,0xFF,0xDE,0xA4,
+ 0x8A,0x78,0x26,0x2A,0x14,0x08,0x00,0x00,0x02,0x08,
+ 0x20,0x04,0x48,0x56,0x8C,0xA8,0xA2,0xB6,0xF2,0xF0,
+ 0xF2,0xE2,0xFF,0xEA,0xEE,0xAC,0x98,0x6A,0x32,0x0C,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x66,0x74,0xB4,
+ 0xAA,0xEA,0xD6,0xB2,0xCC,0xB2,0xB2,0xB0,0xA2,0xC2,
+ 0xD4,0xCE,0xDC,0xDA,0x9A,0x90,0x66,0x2E,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x5E,0x88,0xA0,
+ 0xE0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xEE,0xBE,
+ 0x7A,0x76,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x32,0x4C,0x84,0xA8,0xC8,0xDA,0xFF,0xFA,
+ 0xFF,0xEC,0xEC,0xB8,0xDE,0xA2,0x8A,0x80,0x54,0x28,
+ 0x28,0x04,0x00,0x00,0x00,0x00,0x00,0x3E,0x4A,0x72,
+ 0x90,0xB8,0xBE,0xF0,0xD8,0xFF,0xFE,0xFF,0xFF,0xFF,
+ 0xC8,0x96,0x7E,0x62,0x30,0x10,0x06,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x16,0x3C,0x56,0x88,0x96,0xD4,0xDE,
+ 0xD8,0xFF,0xFF,0xFF,0xF4,0xD2,0xD0,0xA0,0x74,0x58,
+ 0x28,0x28,0x0C,0x08,0x00,0x00,0x00,0x00,0x28,0x0C,
+ 0x32,0x2E,0x4E,0xA0,0x8A,0x8A,0xC6,0x8A,0xB6,0x8C,
+ 0xA4,0x8C,0xB4,0x6E,0xA0,0x62,0x94,0x72,0x5A,0x40,
+ 0x2C,0x6C,0x0E,0x4C,0x2A,0x60,0x5C,0x66,0x72,0xB0,
+ 0x92,0x8A,0xBC,0x86,0xA6,0x76,0x8A,0x6C,0x86,0x86,
+ 0x9A,0xA4,0x9A,0xAE,0xA2,0x76,0x92,0x66,0x4E,0x02,
+ 0x24,0x24,0x32,0x26,0x66,0x74,0x82,0x94,0xA4,0xE6,
+ 0xC6,0xEA,0xA4,0x94,0x6E,0x50,0x5C,0x42,0x1C,0x4C,
+ 0x1C,0x42,0x54,0x54,0x64,0x56,0x6E,0x6A,0x8E,0x80,
+ 0xA0,0x96,0xC2,0xB0,0xE2,0xDA,0xBA,0x98,0xB0,0x7E,
+ 0x66,0x64,0x4C,0x28,0x30,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x16,0x36,0x64,0x64,0x94,0xBA,0xD0,0xEE,
+ 0xDC,0xE2,0xFF,0xEE,0xCC,0xF0,0xB8,0x94,0x86,0x56,
+ 0x4E,0x1A,0x04,0x0E,0x00,0x00,0x00,0x08,0x00,0x02,
+ 0x5E,0x5E,0x82,0x90,0xB2,0xD6,0xF6,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFA,0xD6,0x9C,0xA4,0x4C,0x44,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x6C,0x90,
+ 0xA6,0xD4,0xF2,0xFF,0xFF,0xFF,0xFF,0xE8,0xF0,0x9E,
+ 0x9A,0x76,0x44,0x32,0x1C,0x0C,0x04,0x0C,0x10,0x16,
+ 0x42,0x3C,0x6E,0x64,0x86,0x74,0x9A,0x68,0x78,0x74,
+ 0x82,0x94,0x98,0x94,0x8E,0xB8,0x92,0x8C,0x7E,0x58,
+ 0x60,0x48,0x2E,0x42,0x2A,0x32,0x22,0x44,0x3A,0x58,
+ 0x5A,0x6C,0x6A,0x90,0x98,0xB2,0xBA,0xD4,0xCE,0xCA,
+ 0xB8,0xA2,0xBA,0xA2,0x9A,0x8E,0x66,0x68,0x2A,0x2A,
+ 0x12,0x0C,0x10,0x22,0x2C,0x42,0x52,0x72,0x72,0x88,
+ 0xAE,0xA4,0xC4,0xC6,0xCA,0xC6,0xC6,0xAE,0xA4,0xA2,
+ 0x8E,0x78,0x70,0x42,0x5A,0x34,0x36,0x32,0x28,0x38,
+ 0x2C,0x3C,0x56,0x58,0x7C,0x7E,0x98,0x8A,0xAA,0xA0,
+ 0x98,0x9E,0x9E,0x8E,0x92,0x70,0x72,0x68,0x62,0x50,
+ 0x52,0x52,0x4E,0x48,0x4C,0x48,0x4C,0x50,0x4E,0x46,
+ 0x62,0x54,0x60,0x74,0x7A,0x84,0x98,0x80,0x92,0x8A,
+ 0x86,0x86,0x7C,0x78,0x76,0x80,0x86,0x6E,0x84,0x74,
+ 0x72,0x7C,0x6A,0x80,0x76,0x8E,0x7A,0x84,0x7A,0x86,
+ 0x7A,0x82,0x80,0x86,0x70,0x76,0x6E,0x78,0x66,0x70,
+ 0x64,0x6C,0x64,0x6A,0x66,0x7A,0x78,0x7E,0x82,0x84,
+ 0x88,0x8C,0x82,0x88,0x88,0x8A,0x88,0x8C,0x94,0x7A,
+ 0x92,0x72,0x76,0x66,0x5C,0x54,0x5C,0x56,0x60,0x52,
+ 0x5C,0x52,0x5C,0x60,0x70,0x60,0x6E,0x6E,0x76,0x7A,
+ 0x88,0x74,0x78,0x6A,0x66,0x62,0x6C,0x6E,0x7C,0x7C,
+ 0x6A,0x76,0x6E,0x6C,0x60,0x6E,0x62,0x60,0x64,0x64,
+ 0x64,0x6C,0x5A,0x60,0x5C,0x62,0x62,0x66,0x6E,0x68,
+ 0x6A,0x74,0x7A,0x84,0x88,0x8E,0x90,0x9C,0xA6,0xA0,
+ 0xA8,0x9E,0xA6,0x94,0x98,0x88,0x86,0x74,0x78,0x5C,
+ 0x62,0x52,0x52,0x4E,0x4E,0x46,0x3A,0x4E,0x4C,0x48,
+ 0x5A,0x5E,0x62,0x78,0x74,0x88,0x8E,0xA2,0x9C,0x98,
+ 0xAE,0xA2,0xAE,0xA0,0xA2,0x98,0x88,0x92,0x7E,0x76,
+ 0x6E,0x5C,0x60,0x4C,0x40,0x36,0x36,0x2A,0x34,0x26,
+ 0x3E,0x34,0x40,0x48,0x50,0x6A,0x68,0x70,0x84,0x90,
+ 0x94,0x92,0x9E,0xAA,0xA4,0xA4,0x90,0x92,0x7E,0x7E,
+ 0x72,0x6A,0x56,0x50,0x42,0x40,0x30,0x2E,0x2E,0x2E,
+ 0x3C,0x38,0x50,0x5E,0x6A,0x7C,0x8A,0x92,0xAE,0xB0,
+ 0xB2,0xBA,0xBE,0xC0,0xB8,0xB6,0xB2,0xA2,0x9A,0x94,
+ 0x80,0x78,0x70,0x60,0x56,0x4A,0x3E,0x3E,0x2A,0x40,
+ 0x3C,0x44,0x46,0x52,0x56,0x64,0x6E,0x7A,0x86,0x8C,
+ 0x8E,0x92,0x9E,0x96,0x9A,0x9E,0x98,0x9C,0x94,0x8E,
+ 0x8C,0x82,0x6E,0x6A,0x60,0x5C,0x48,0x48,0x44,0x3A,
+ 0x4C,0x34,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample19[147]={
+ 0x8E,0x71,0x59,0x3C,0x25,0x10,0x04,0x0A,0x16,0x14,
+ 0x24,0x4A,0x70,0x96,0xC1,0xEA,0xFE,0xFC,0xFD,0xFC,
+ 0xFD,0xFC,0xFD,0xFC,0xEF,0xC1,0x89,0x53,0x25,0x07,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x0C,
+ 0x36,0x4A,0x73,0xAA,0xE2,0xFD,0xFC,0xFD,0xFC,0xFD,
+ 0xFC,0xFD,0xFC,0xFC,0xFC,0xFD,0xF9,0xD6,0xAB,0x7D,
+ 0x58,0x44,0x18,0x02,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x00,0x0D,0x34,0x5E,0x89,0xB2,
+ 0xDC,0xF5,0xFC,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFC,
+ 0xFD,0xFC,0xFD,0xFC,0xFD,0xED,0xC7,0xA1,0x79,0x52,
+ 0x2A,0x08,0x00,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
+ 0x02,0x02,0x02,0x02,0x01,0x01,0x14,0x36,0x5A,0x80,
+ 0xA5,0xC8,0xE9,0xFE,0xFC,0xFD,0xFC,0xFD,0xFC,0xFD,
+ 0xFC,0xFD,0xFC,0xFD,0xFC,0xFD,0xFC,0xF8,0xDD,0xC4,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample20[139]={
+ 0x83,0x97,0x7A,0xC9,0x3D,0x49,0xC5,0x94,0x58,0x17,
+ 0x3F,0x8A,0xEA,0x9E,0x3A,0x27,0xB6,0x9F,0x42,0x9C,
+ 0x92,0x8E,0x49,0x70,0x5E,0x9B,0xA7,0x78,0x42,0x6E,
+ 0x9F,0x88,0x77,0x5A,0x8D,0x85,0x79,0x7D,0x7E,0x7A,
+ 0x69,0x84,0x89,0x84,0x41,0xDE,0x8A,0x11,0x5D,0xC6,
+ 0xCE,0x51,0x22,0xA3,0xB0,0x00,0xB0,0xCE,0x71,0x0F,
+ 0x9B,0xB2,0x34,0xAA,0x99,0x98,0x50,0x3E,0x96,0xA3,
+ 0x67,0x7A,0x94,0x6B,0x6A,0x95,0x8F,0x69,0x58,0x80,
+ 0xB1,0x83,0x53,0x80,0x8C,0x77,0x7C,0x77,0x9B,0x78,
+ 0x68,0x7A,0xA4,0x4D,0x5B,0x89,0x8B,0x70,0xCB,0xC1,
+ 0x38,0x38,0xCD,0xD6,0xA8,0x35,0x38,0xEF,0x72,0x1A,
+ 0x7C,0xD4,0xC1,0x51,0x2B,0xBC,0xAA,0x41,0x67,0xAB,
+ 0x89,0x4C,0x9B,0x90,0x63,0x66,0x83,0xA0,0x77,0x65,
+ 0x62,0xB6,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample21[85]={
+ 0x76,0xAE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x26,0x5E,0x9A,0xCA,0xFA,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xD6,0x98,0x74,0x32,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x12,0x4A,0x86,0xB4,0xEA,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xBC,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample22[150]={
+ 0xAD,0x92,0x5F,0xB2,0x56,0x52,0x65,0xBD,0x80,0x84,
+ 0x80,0xB1,0xC2,0x9A,0x98,0x80,0x9D,0xDD,0x89,0xB8,
+ 0x64,0x9A,0x22,0xB1,0xB2,0x7A,0xB0,0x52,0xB9,0x9E,
+ 0xA5,0x52,0x68,0xC8,0x64,0xD4,0x44,0xA0,0x72,0x63,
+ 0x8B,0x76,0x9D,0x7E,0x82,0x79,0xB6,0x81,0x64,0xAF,
+ 0x90,0xA8,0x72,0xA3,0xA5,0xA1,0xA4,0x9E,0xBD,0x96,
+ 0xA9,0x8A,0x96,0x98,0x9A,0xB1,0x5B,0x90,0x4A,0x6C,
+ 0x93,0x8D,0x9D,0x83,0x9D,0x7D,0xAE,0x8D,0x89,0x88,
+ 0x64,0xC8,0x7E,0x88,0x74,0x94,0x87,0x88,0x93,0x75,
+ 0x62,0x70,0x98,0x8B,0xC0,0x93,0x8F,0x81,0x7B,0x92,
+ 0x95,0x60,0xA4,0x90,0xA8,0x64,0x9A,0x9E,0x5B,0x63,
+ 0x82,0xA8,0x9B,0x7B,0xA5,0x93,0x97,0x7D,0xA6,0x91,
+ 0x83,0x9F,0xB7,0x92,0x73,0x99,0x8D,0x81,0x86,0x9F,
+ 0x9C,0x7D,0x9E,0x87,0xA1,0xA0,0x81,0x75,0xA2,0x74,
+ 0xA7,0x80,0x95,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample23[507]={
+ 0x77,0x83,0x29,0x08,0x7D,0xF8,0xE2,0xEF,0xE7,0xEF,
+ 0x79,0x49,0x37,0x2D,0x14,0x0E,0x13,0x0E,0x16,0x06,
+ 0x56,0xB5,0xE4,0xF6,0xE6,0xF7,0xE3,0xFF,0xBC,0xD2,
+ 0xB5,0xBC,0xE2,0xDE,0x9D,0xB1,0xC7,0x83,0x23,0x0A,
+ 0x15,0x0E,0x13,0x0E,0x13,0x0E,0x14,0x0D,0x1A,0x5A,
+ 0xCD,0xF6,0xEA,0xF1,0xEB,0xF0,0xEC,0xF0,0xEC,0xF1,
+ 0xEB,0xF2,0xE1,0xBF,0xAC,0x48,0x5A,0x27,0x13,0x11,
+ 0x10,0x12,0x0F,0x13,0x0E,0x15,0x0A,0x33,0x65,0x86,
+ 0xF6,0xE7,0xF3,0xEA,0xF1,0xEB,0xF0,0xEC,0xF0,0xEB,
+ 0xF2,0xE2,0xA0,0xC0,0x9B,0x8F,0x63,0x20,0x22,0x08,
+ 0x17,0x0C,0x15,0x0D,0x15,0x0D,0x15,0x0C,0x1A,0x55,
+ 0xB0,0xCA,0xE8,0xEE,0xED,0xEE,0xEE,0xEE,0xED,0xF0,
+ 0xCE,0xBF,0xA7,0x98,0x59,0x54,0x20,0x10,0x15,0x0E,
+ 0x13,0x0E,0x14,0x10,0x3C,0x54,0x6C,0x55,0x73,0xB0,
+ 0xB4,0xA3,0xDE,0xEF,0xEE,0xED,0xF0,0xE8,0xD4,0xF6,
+ 0xE7,0xF3,0xBB,0xB1,0x9D,0xA4,0x91,0x4E,0x43,0x1D,
+ 0x27,0x12,0x2E,0x17,0x19,0x14,0x1A,0x11,0x17,0x3C,
+ 0x5D,0xA3,0xCC,0xE8,0xF0,0xED,0xF0,0xEC,0xF0,0xEC,
+ 0xF0,0x99,0x78,0x5A,0x52,0x3B,0x4F,0x44,0x32,0x07,
+ 0x1A,0x0C,0x20,0x10,0x17,0x14,0x21,0x37,0x5C,0x84,
+ 0xA9,0x8A,0xA9,0xB6,0xC7,0xC2,0xE4,0xE9,0xC3,0xD2,
+ 0xA6,0xBD,0x9F,0x96,0xA1,0x8B,0x81,0x5D,0x52,0x35,
+ 0x2B,0x0F,0x11,0x23,0x20,0x20,0x29,0x38,0x3E,0x61,
+ 0x81,0x93,0x99,0xAD,0xC6,0xE1,0xEE,0xE7,0xE9,0xE3,
+ 0xD5,0xAC,0x97,0x7D,0x76,0x5C,0x5E,0x60,0x41,0x41,
+ 0x59,0x63,0x36,0x5B,0x2E,0x37,0x47,0x57,0x4D,0x67,
+ 0x7D,0xA8,0xB4,0xCF,0xE8,0xD5,0xCA,0xBC,0xBD,0xA8,
+ 0x97,0x95,0x94,0x9D,0xA0,0xB2,0xA6,0x9C,0x79,0x6E,
+ 0x55,0x43,0x32,0x34,0x37,0x32,0x3A,0x45,0x63,0x81,
+ 0x9B,0xB3,0xA9,0xAD,0x96,0x98,0x7A,0x80,0x77,0x95,
+ 0xAB,0xC2,0xDD,0xC5,0xC8,0xAD,0x95,0x6E,0x60,0x63,
+ 0x38,0x30,0x4B,0x37,0x35,0x54,0x52,0x60,0x68,0x6D,
+ 0x78,0x75,0x78,0x8A,0x8D,0xA0,0x8F,0x97,0xA0,0xAE,
+ 0x94,0xA1,0xAB,0xA3,0x98,0x95,0x91,0x82,0x69,0x74,
+ 0x6C,0x79,0x5B,0x5E,0x52,0x5D,0x5C,0x6B,0x65,0x7A,
+ 0x60,0x6E,0x7B,0x7B,0x6D,0x78,0x60,0x69,0x71,0x77,
+ 0x9A,0x96,0xA5,0xB1,0xA2,0xA4,0xAE,0xA5,0xA7,0x86,
+ 0x7B,0x70,0x70,0x67,0x55,0x5E,0x59,0x59,0x53,0x5D,
+ 0x57,0x62,0x6C,0x5E,0x6B,0x74,0x83,0x8F,0xA0,0xA5,
+ 0xB1,0xAD,0xB9,0xB2,0xAF,0xA7,0x96,0x91,0x8D,0x80,
+ 0x7E,0x80,0x73,0x6D,0x69,0x65,0x63,0x5E,0x68,0x6B,
+ 0x6C,0x6E,0x67,0x71,0x75,0x70,0x7D,0x72,0x7D,0x7B,
+ 0x71,0x8C,0x98,0x8D,0xA3,0xAC,0x9F,0xAA,0xB1,0xAA,
+ 0xA2,0x92,0x8C,0x80,0x77,0x6D,0x55,0x5C,0x61,0x50,
+ 0x4F,0x59,0x5E,0x5C,0x5E,0x73,0x72,0x7B,0x87,0x93,
+ 0x92,0xA4,0xA1,0xA1,0x95,0x93,0x8C,0x8A,0x87,0x89,
+ 0x82,0x92,0x8D,0x88,0x85,0x85,0x82,0x80,0x70,0x6C,
+ 0x6E,0x58,0x64,0x62,0x6A,0x74,0x77,0x80,0x74,0x86,
+ 0x7B,0x80,0x77,0x75,0x72,0x7E,0x86,0x80,0x95,0x8B,
+ 0x98,0xA1,0xAA,0x8E,0x8E,0x90,0x7D,0x83,0x71,0x74,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample24[230]={
+ 0xA0,0x66,0xA6,0xAA,0xC8,0xC4,0xCC,0xD8,0xEC,0xEE,
+ 0xFF,0xFF,0xFF,0xFF,0xBE,0xAE,0x5A,0x62,0x26,0x10,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x3E,0x4E,
+ 0x7A,0xAE,0xB8,0xE4,0xCE,0xCE,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xCA,0xC0,0xAE,0x9A,0x4E,0x40,0x58,
+ 0x5A,0x60,0x50,0x5A,0x62,0xA6,0x64,0x78,0x44,0x62,
+ 0x9E,0xB8,0xB4,0xA4,0x80,0x64,0x62,0x50,0x46,0x4E,
+ 0x34,0x48,0x4C,0x5C,0x5C,0x5C,0x76,0x86,0x64,0x4C,
+ 0x52,0x3E,0x6A,0x8A,0xBA,0xD0,0xF6,0xFF,0xFF,0xFF,
+ 0xFF,0xEA,0xE0,0xB2,0xA4,0x86,0x92,0x9A,0x90,0x70,
+ 0x5A,0x44,0x4C,0x44,0x56,0x72,0x62,0x68,0x52,0x56,
+ 0x64,0x56,0x6E,0x3A,0x3C,0x40,0x64,0x54,0x66,0x5C,
+ 0x82,0xAC,0xA8,0xCA,0xC4,0xE2,0xC2,0xC0,0x94,0xB4,
+ 0x96,0xC8,0xBE,0xB0,0xC6,0xB2,0xD4,0xD2,0xCA,0xC2,
+ 0xA0,0x8E,0x7C,0x5E,0x42,0x2A,0x0C,0x00,0x00,0x00,
+ 0x00,0x1A,0x2E,0x34,0x52,0x72,0x7E,0x9A,0x8E,0xA2,
+ 0xB0,0xB2,0xBC,0xAE,0x96,0x6E,0x44,0x38,0x58,0x6E,
+ 0xAA,0xD6,0xFF,0xFA,0xF2,0xD4,0xD0,0xC0,0xC0,0xC8,
+ 0xBA,0x96,0x8E,0x70,0x70,0x82,0x90,0xAC,0xBE,0xB8,
+ 0xB4,0x92,0x82,0x80,0x72,0x6E,0x60,0x4C,0x42,0x22,
+ 0x1C,0x12,0x00,0x16,0x3E,0x54,0x86,0xA4,0xD0,0xDE,
+ 0xEA,0xD4,0xC8,0xAC,0xA6,0x9A,0xAC,0xAE,0xAC,0xAA,
+ 0x94,0x84,0x7E,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample25[120]={
+ 0x84,0x6E,0x52,0xA4,0x62,0x78,0xEC,0x28,0x7A,0x68,
+ 0x5A,0x8E,0x68,0x30,0x3E,0x40,0x6E,0xA2,0x7A,0xAE,
+ 0xFC,0xAE,0xB0,0xA6,0x8A,0x94,0x54,0xA2,0x6E,0x56,
+ 0x64,0x7E,0x62,0x46,0x52,0x32,0x7C,0x50,0xA2,0x5E,
+ 0xB0,0x7A,0x86,0xB2,0x78,0x7C,0x84,0x9A,0x62,0x90,
+ 0x82,0xB0,0x9A,0x5E,0x72,0x24,0x62,0x68,0x22,0x68,
+ 0x46,0x8A,0x58,0xB8,0x9C,0xCC,0x94,0xCE,0x5C,0x5A,
+ 0x60,0x3A,0x80,0x5A,0x74,0x6A,0xA6,0x8E,0x80,0x9A,
+ 0x80,0x62,0x52,0x60,0x58,0x84,0x3C,0x74,0x4E,0x6E,
+ 0x9E,0x50,0x92,0x96,0x72,0x94,0x5A,0x78,0x6E,0x70,
+ 0x6A,0x92,0x66,0x86,0x6C,0x74,0x6E,0x64,0x8E,0x8C,
+ 0x90,0xAA,0x8C,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample26[271]={
+ 0x56,0x78,0x70,0x70,0x66,0x6E,0x54,0x64,0x62,0x36,
+ 0x52,0x00,0xCE,0x28,0x1A,0xE6,0x00,0xF4,0x5E,0x90,
+ 0xD4,0x00,0xFF,0x00,0x3A,0x00,0x00,0x00,0x00,0x24,
+ 0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xA2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0C,0x9C,0xEC,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xD0,0x30,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x3E,0xD4,0xC4,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xE6,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x0A,0x5A,0x00,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xF6,0xF0,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x08,0x92,0xEE,
+ 0x36,0xFF,0xBE,0xFF,0xF6,0xFF,0xF8,0xFF,0xBC,0xD2,
+ 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0xCC,0x00,0xFF,0x60,0xB0,0xFF,0xE0,0xFF,
+ 0xA0,0xFF,0xBC,0xFF,0xFF,0x44,0xAA,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x7C,
+ 0x1E,0xF6,0x00,0xFF,0x44,0xF8,0xCA,0xFF,0xEC,0xFF,
+ 0xB8,0xFF,0xBC,0xB4,0xE2,0x00,0x66,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xD0,0x00,
+ 0xE6,0x00,0xFC,0x2C,0xF4,0x94,0x94,0xD6,0x7C,0xDE,
+ 0x62,0xFF,0x7A,0xFF,0xD2,0xFF,0x1C,0xFF,0x00,0xEE,
+ 0x00,0x42,0x00,0x1A,0x00,0x8A,0x00,0xE4,0x00,0xD8,
+ 0x42,0x7E,0x84,0x32,0xD2,0x1C,0xFF,0x14,0xFC,0x58,
+ 0xFF,0xCC,0xC4,0x92,0xC2,0x70,0xFF,0x44,0xC8,0x72,
+ 0xBA,0x50,0xC0,0x48,0x2A,0x7E,0x00,0x32,0x00,0x22,
+ 0x00,0x14,0x36,0x00,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample27[293]={
+ 0x80,0x80,0x9F,0x80,0x9F,0x9F,0x5F,0x80,0x80,0x9F,
+ 0xCA,0x80,0x80,0xDF,0xBE,0xBF,0x80,0x88,0xBF,0x3F,
+ 0xDE,0x20,0x80,0xC6,0x6F,0x02,0x5F,0x9E,0x3F,0x00,
+ 0x9F,0x07,0x3F,0x80,0xDF,0x14,0x9F,0xB7,0xFF,0x3F,
+ 0xFE,0xFF,0xFE,0xFF,0xFF,0xCF,0xFF,0xFF,0xBF,0x93,
+ 0xCF,0xD7,0x12,0x4F,0x93,0x3A,0x1F,0x04,0x00,0x00,
+ 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x10,0x16,0x77,0x0A,0xFD,0x80,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xEF,0xDF,0xFA,0xC9,0x5A,0x5B,0x31,0x1F,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x1E,0x68,0xA6,
+ 0xAD,0xFF,0xF7,0xEE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xF8,0xE3,0xDD,0xE5,0xC8,0x86,0x86,
+ 0x6A,0x43,0x28,0x1D,0x15,0x00,0x09,0x1F,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x3E,0x00,
+ 0x0F,0x0A,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x04,0x00,0x14,0x23,0x22,0x4A,0x58,0x8D,0xA5,0xA6,
+ 0xC9,0xD0,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xE6,0xB5,0xA4,
+ 0x65,0x3A,0x54,0x37,0x06,0x07,0x0D,0x00,0x0E,0x00,
+ 0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x05,0x00,0x04,
+ 0x1F,0x00,0x0F,0x2B,0x24,0x10,0x04,0x15,0x07,0x08,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,
+ 0x25,0x3A,0x44,0x61,0x6C,0x91,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,};
+static ymu8 sample28[391]={
+ 0x8B,0x8E,0x8F,0x8C,0x8D,0x8E,0x91,0x93,0x97,0xB0,
+ 0xDF,0xFF,0xFF,0xDE,0x00,0x3F,0x3F,0x97,0x80,0x00,
+ 0x00,0x08,0xBF,0xBF,0xBF,0xBF,0xBF,0x9E,0xA6,0xFF,
+ 0xE8,0xF3,0x1C,0x00,0x00,0x00,0x5E,0x15,0x00,0x00,
+ 0x1F,0xBE,0xFF,0x10,0x00,0x37,0x2F,0x00,0x1C,0x3F,
+ 0x5E,0x4F,0x80,0xFF,0xFF,0xFF,0xFF,0xF6,0xFF,0xE3,
+ 0xFF,0x80,0x5F,0x94,0xFF,0xFF,0xFF,0x7E,0x3F,0xDF,
+ 0x87,0x3A,0x00,0x00,0x2B,0x00,0x00,0x0E,0x9C,0xE7,
+ 0x9E,0xEF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0x00,
+ 0x14,0x18,0x3F,0x23,0x56,0x00,0x00,0x65,0x4B,0x60,
+ 0x2F,0x08,0x8E,0x2F,0xA7,0xD3,0xA3,0xFF,0xF7,0xEF,
+ 0xFF,0xFF,0xFF,0xC3,0x8B,0x28,0x5F,0x34,0x2F,0x10,
+ 0x00,0x00,0x00,0x1F,0x46,0xB3,0xE3,0xA7,0xCF,0xDE,
+ 0xE2,0xB6,0x9C,0x5D,0x53,0x77,0x84,0x47,0x56,0x7E,
+ 0xDA,0xF7,0xAC,0xDE,0x55,0x73,0x42,0x0F,0x3F,0x00,
+ 0x00,0x00,0x0C,0x00,0x8F,0x00,0xCB,0xD6,0xCF,0xFF,
+ 0xFF,0xE0,0xA6,0x75,0x9F,0x3F,0x00,0x16,0x36,0x66,
+ 0x18,0x3F,0x85,0xC7,0xEE,0x88,0x3E,0x80,0xB8,0x45,
+ 0x37,0x2F,0x2B,0x27,0x38,0x90,0xDB,0xE6,0xEE,0x8C,
+ 0xBF,0x6F,0x66,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,
+ 0x54,0xBF,0xDE,0xFF,0xE5,0xFA,0xBE,0x93,0xCF,0x6B,
+ 0xAE,0x80,0xC7,0x86,0x97,0xD3,0xC7,0xC1,0xD7,0xAA,
+ 0x75,0x6F,0x6D,0x80,0x18,0x0A,0x0D,0x1F,0x6A,0x6F,
+ 0xE3,0xDF,0xE6,0xEE,0xF6,0xFB,0xEF,0xC4,0x56,0x89,
+ 0x3F,0x3F,0x38,0x77,0x6B,0x9F,0x4B,0x95,0x66,0x6A,
+ 0x96,0x72,0x87,0x57,0x73,0x60,0x67,0x8F,0x97,0xD6,
+ 0x97,0xD9,0xDB,0xE7,0x9E,0xBB,0x3F,0x68,0x17,0x24,
+ 0x16,0x1F,0x6F,0x27,0x3F,0x47,0x9F,0x82,0x7D,0x70,
+ 0x45,0x5F,0x5F,0x87,0x20,0x58,0x5F,0x33,0xA6,0xCC,
+ 0x6F,0xC1,0x80,0x79,0x9A,0x9A,0x71,0x33,0x3F,0x0C,
+ 0x16,0x29,0x2E,0x57,0x3B,0xCF,0xBB,0xDE,0xEE,0xF0,
+ 0xD9,0xB9,0x8B,0x27,0x8D,0x87,0x75,0x2E,0x6E,0x63,
+ 0x4A,0x6B,0x79,0xAE,0xAE,0x9F,0xBB,0xAB,0xAF,0xA6,
+ 0xAA,0x4D,0x28,0x5A,0x56,0x9E,0x9C,0x7B,0xA9,0xA9,
+ 0x4D,0x87,0x84,0x92,0x7D,0x9F,0x4B,0xA7,0x9F,0xB5,
+ 0x83,0xA5,0xBA,0xC9,0xE7,0xB1,0x9D,0x66,0x4D,0x6D,
+ 0x2F,0x52,0x77,0x5D,0x4F,0x5B,0x9C,0xBC,0xD5,0xCF,
+ 0x97,0xA2,0x91,0xA0,0x60,0x56,0x61,0x4B,0x51,0x88,
+ 0x8B,0x8C,0xC6,0xBF,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample29[391]={
+ 0x86,0x88,0x89,0x87,0x88,0x88,0x8A,0x8B,0x8E,0x9D,
+ 0xBB,0xCF,0xCF,0xBA,0x30,0x57,0x57,0x8E,0x80,0x30,
+ 0x30,0x35,0xA7,0xA7,0xA7,0xA7,0xA7,0x92,0x97,0xCF,
+ 0xC0,0xC7,0x41,0x30,0x30,0x30,0x6A,0x3D,0x30,0x30,
+ 0x43,0xA6,0xCF,0x3A,0x30,0x52,0x4D,0x30,0x41,0x57,
+ 0x6A,0x61,0x80,0xCF,0xCF,0xCF,0xCF,0xC9,0xCF,0xBD,
+ 0xCF,0x80,0x6B,0x8C,0xCF,0xCF,0xCF,0x7E,0x57,0xBB,
+ 0x84,0x54,0x30,0x30,0x4A,0x30,0x30,0x38,0x91,0xC0,
+ 0x92,0xC5,0xB1,0xCF,0xCF,0xCF,0xCF,0xCF,0xBB,0x30,
+ 0x3C,0x3F,0x57,0x45,0x65,0x30,0x30,0x6F,0x5E,0x6C,
+ 0x4D,0x35,0x88,0x4D,0x98,0xB3,0x95,0xCF,0xCA,0xC5,
+ 0xCF,0xCF,0xCF,0xA9,0x86,0x49,0x6B,0x50,0x4D,0x3A,
+ 0x30,0x30,0x30,0x43,0x5B,0x9F,0xBD,0x98,0xB1,0xBA,
+ 0xBD,0xA1,0x91,0x6A,0x63,0x7A,0x82,0x5C,0x65,0x7E,
+ 0xB8,0xCA,0x9B,0xBA,0x65,0x77,0x59,0x39,0x57,0x30,
+ 0x30,0x30,0x37,0x30,0x89,0x30,0xAE,0xB5,0xB1,0xCF,
+ 0xCF,0xBB,0x97,0x79,0x93,0x57,0x30,0x3D,0x51,0x6F,
+ 0x3F,0x57,0x83,0xAC,0xC4,0x84,0x56,0x80,0xA2,0x5B,
+ 0x52,0x4D,0x4A,0x48,0x53,0x89,0xB8,0xBF,0xC4,0x87,
+ 0xA7,0x75,0x6F,0x57,0x30,0x30,0x30,0x30,0x30,0x57,
+ 0x64,0xA7,0xBA,0xCF,0xBF,0xCC,0xA6,0x8B,0xB1,0x72,
+ 0x9C,0x80,0xAC,0x83,0x8E,0xB3,0xAC,0xA8,0xB6,0x9A,
+ 0x79,0x75,0x74,0x80,0x3F,0x36,0x38,0x43,0x72,0x75,
+ 0xBD,0xBB,0xBF,0xC4,0xC9,0xCC,0xC5,0xAA,0x65,0x85,
+ 0x57,0x57,0x53,0x7A,0x72,0x93,0x5E,0x8D,0x6F,0x72,
+ 0x8D,0x77,0x84,0x66,0x77,0x6C,0x70,0x89,0x8E,0xB5,
+ 0x8E,0xB7,0xB8,0xC0,0x92,0xA4,0x57,0x71,0x3E,0x46,
+ 0x3D,0x43,0x75,0x48,0x57,0x5C,0x93,0x81,0x7E,0x76,
+ 0x5B,0x6B,0x6B,0x84,0x44,0x67,0x6B,0x4F,0x97,0xAF,
+ 0x75,0xA8,0x80,0x7B,0x90,0x90,0x76,0x4F,0x57,0x37,
+ 0x3D,0x49,0x4C,0x66,0x54,0xB1,0xA4,0xBA,0xC4,0xC5,
+ 0xB7,0xA3,0x86,0x48,0x88,0x84,0x79,0x4C,0x74,0x6D,
+ 0x5E,0x72,0x7B,0x9C,0x9C,0x93,0xA4,0x9A,0x9D,0x97,
+ 0x9A,0x60,0x49,0x68,0x65,0x92,0x91,0x7C,0x99,0x99,
+ 0x60,0x84,0x82,0x8B,0x7E,0x93,0x5E,0x98,0x93,0xA1,
+ 0x81,0x97,0xA4,0xAD,0xC0,0x9E,0x92,0x6F,0x60,0x74,
+ 0x4D,0x63,0x7A,0x6A,0x61,0x68,0x91,0xA5,0xB5,0xB1,
+ 0x8E,0x95,0x8A,0x93,0x6C,0x65,0x6C,0x5E,0x62,0x84,
+ 0x86,0x87,0xAB,0xA7,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample30[391]={
+ 0x84,0x85,0x85,0x84,0x85,0x85,0x86,0x87,0x89,0x92,
+ 0xA5,0xB2,0xB2,0xA5,0x4D,0x66,0x66,0x89,0x80,0x4D,
+ 0x4D,0x50,0x98,0x98,0x98,0x98,0x98,0x8B,0x8F,0xB2,
+ 0xA9,0xAD,0x58,0x4D,0x4D,0x4D,0x72,0x55,0x4D,0x4D,
+ 0x59,0x98,0xB2,0x53,0x4D,0x63,0x5F,0x4D,0x58,0x66,
+ 0x72,0x6C,0x80,0xB2,0xB2,0xB2,0xB2,0xAE,0xB2,0xA7,
+ 0xB2,0x80,0x72,0x87,0xB2,0xB2,0xB2,0x80,0x66,0xA5,
+ 0x82,0x64,0x4D,0x4D,0x5E,0x4D,0x4D,0x52,0x8B,0xA8,
+ 0x8B,0xAB,0x9F,0xB2,0xB2,0xB2,0xB2,0xB2,0xA5,0x4D,
+ 0x55,0x56,0x66,0x5B,0x6F,0x4D,0x4D,0x75,0x6B,0x73,
+ 0x5F,0x50,0x85,0x5F,0x8F,0xA0,0x8D,0xB2,0xAF,0xAB,
+ 0xB2,0xB2,0xB2,0x9A,0x84,0x5D,0x72,0x61,0x5F,0x53,
+ 0x4D,0x4D,0x4D,0x59,0x69,0x94,0xA7,0x8F,0x9F,0xA5,
+ 0xA6,0x95,0x8B,0x72,0x6E,0x7C,0x81,0x69,0x6F,0x80,
+ 0xA3,0xAF,0x91,0xA5,0x6E,0x7A,0x67,0x53,0x66,0x4D,
+ 0x4D,0x4D,0x52,0x4D,0x85,0x4D,0x9D,0xA2,0x9F,0xB2,
+ 0xB2,0xA5,0x8F,0x7B,0x8C,0x66,0x4D,0x56,0x62,0x75,
+ 0x56,0x66,0x81,0x9C,0xAB,0x83,0x65,0x80,0x96,0x68,
+ 0x63,0x5F,0x5E,0x5C,0x63,0x86,0xA3,0xA8,0xAB,0x84,
+ 0x98,0x79,0x75,0x66,0x4D,0x4D,0x4D,0x4D,0x4D,0x66,
+ 0x6E,0x98,0xA5,0xB2,0xA7,0xB0,0x98,0x87,0x9F,0x77,
+ 0x92,0x80,0x9C,0x82,0x89,0xA0,0x9C,0x99,0xA2,0x90,
+ 0x7B,0x79,0x78,0x80,0x56,0x51,0x52,0x59,0x77,0x79,
+ 0xA7,0xA5,0xA8,0xAB,0xAE,0xB0,0xAB,0x9A,0x6F,0x83,
+ 0x66,0x66,0x63,0x7C,0x77,0x8C,0x6B,0x88,0x75,0x77,
+ 0x88,0x7A,0x82,0x6F,0x7A,0x73,0x76,0x85,0x89,0xA2,
+ 0x89,0xA3,0xA3,0xA8,0x8B,0x97,0x66,0x76,0x56,0x5B,
+ 0x56,0x59,0x79,0x5C,0x66,0x69,0x8C,0x80,0x7E,0x79,
+ 0x68,0x72,0x72,0x82,0x5A,0x70,0x72,0x61,0x8F,0x9E,
+ 0x79,0x99,0x80,0x7D,0x8A,0x8A,0x7A,0x61,0x66,0x52,
+ 0x56,0x5D,0x5F,0x6F,0x64,0x9F,0x97,0xA5,0xAB,0xAC,
+ 0xA3,0x96,0x84,0x5C,0x85,0x82,0x7B,0x5F,0x78,0x74,
+ 0x6A,0x77,0x7D,0x92,0x92,0x8C,0x97,0x91,0x92,0x8F,
+ 0x90,0x6B,0x5D,0x70,0x6F,0x8B,0x8B,0x7E,0x90,0x90,
+ 0x6B,0x82,0x81,0x87,0x7E,0x8C,0x6B,0x8F,0x8C,0x94,
+ 0x81,0x8E,0x96,0x9C,0xA8,0x93,0x8B,0x75,0x6B,0x78,
+ 0x5F,0x6D,0x7C,0x72,0x6C,0x71,0x8B,0x97,0xA1,0x9F,
+ 0x89,0x8D,0x86,0x8C,0x73,0x6F,0x73,0x6B,0x6D,0x83,
+ 0x84,0x84,0x9B,0x98,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample31[407]={
+ 0x72,0x7A,0x84,0x96,0xB0,0xBC,0xB4,0xA6,0x9A,0xBA,
+ 0x36,0xFF,0x76,0x00,0x00,0x4E,0xE4,0xFF,0xFF,0xFF,
+ 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
+ 0xFF,0xFF,0xFF,0x4A,0x12,0x00,0x00,0x00,0x6C,0xE2,
+ 0x62,0xFF,0xFF,0xFF,0xAC,0x42,0xFF,0xBE,0x96,0x4E,
+ 0x48,0x00,0x00,0x00,0x00,0x00,0x32,0x62,0xC6,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
+ 0x1A,0x00,0x76,0x8A,0xAC,0x16,0x00,0x00,0x00,0x00,
+ 0x00,0x26,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xA4,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x76,0x90,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBA,0xFF,0xB4,0xB4,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0xFF,0x8C,0x00,
+ 0x00,0x00,0x96,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,
+ 0x5A,0x88,0x00,0x0E,0x58,0x6A,0x24,0x82,0x38,0xD8,
+ 0xFF,0xFF,0xCC,0x6A,0x02,0x00,0x00,0x00,0x00,0x92,
+ 0xFF,0xF2,0xF4,0x66,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x0A,0xD6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3C,0x66,0x26,
+ 0x00,0x00,0x00,0x04,0x1C,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8C,
+ 0x68,0x64,0x66,0xFF,0xE4,0xFF,0x7A,0x06,0x00,0x00,
+ 0x00,0x00,0x00,0x0E,0x50,0x80,0xC6,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xF6,0xFF,0xFF,0xFF,0x8C,0x44,0x4A,
+ 0x2A,0x00,0x00,0x32,0x00,0x4A,0xC2,0xBC,0xB0,0x2E,
+ 0x00,0x00,0x00,0x00,0x00,0xE6,0xFF,0xEA,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xC6,0x8A,0x38,0x00,0x00,0x00,0x08,
+ 0x16,0xB2,0xD8,0xFF,0xD2,0xFF,0x66,0xD4,0x44,0x70,
+ 0x64,0x9E,0xAC,0xEA,0xFA,0xF0,0xFF,0xF4,0x7A,0xC4,
+ 0x4C,0x6C,0x6C,0x68,0x1C,0x16,0x60,0x5E,0x38,0x2A,
+ 0x02,0x00,0x00,0x16,0x02,0x40,0x7C,0x4E,0x2A,0x86,
+ 0xB8,0x66,0x56,0x86,0x8C,0xBC,0x92,0xC6,0xEC,0xF4,
+ 0x9E,0x16,0x34,0x40,0x8E,0xAC,0xA6,0xD0,0xD2,0xB6,
+ 0xEC,0xFF,0xF6,0xFF,0xFF,0xFF,0xFF,0x74,0x96,0x46,
+ 0x6C,0x42,0x50,0x22,0x00,0x30,0x30,0x24,0x92,0x98,
+ 0x2E,0x66,0x7C,0x66,0x78,0x62,0x1C,0xA8,0x5A,0xD4,
+ 0xFF,0xFF,0xD0,0x4C,0x2E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x5E,0x72,0xA4,0x8A,0xFF,0x96,0x88,0x40,
+ 0x40,0x2E,0x4C,0xB4,0xE0,0xFF,0xEA,0xFF,0xFE,0xD8,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample32[407]={
+ 0x77,0x7C,0x82,0x8D,0x9D,0xA5,0xA0,0x97,0x90,0xA4,
+ 0x51,0xCF,0x79,0x30,0x30,0x60,0xBE,0xCF,0xCF,0xCF,
+ 0xCF,0x30,0x30,0x30,0x30,0x30,0x30,0xCF,0xCF,0xCF,
+ 0xCF,0xCF,0xCF,0x30,0x30,0x30,0x30,0x30,0x30,0xCF,
+ 0xCF,0xCF,0xCF,0x5E,0x3B,0x30,0x30,0x30,0x73,0xBD,
+ 0x6D,0xCF,0xCF,0xCF,0x9B,0x59,0xCF,0xA6,0x8D,0x60,
+ 0x5D,0x30,0x30,0x30,0x30,0x30,0x4F,0x6D,0xAB,0xCF,
+ 0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0x30,0x30,0x30,0x30,
+ 0x40,0x30,0x79,0x86,0x9B,0x3D,0x30,0x30,0x30,0x30,
+ 0x30,0x47,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,
+ 0x96,0x64,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x79,0x89,0xCF,0xCF,0xCF,
+ 0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xA4,0xCF,0xA0,0xA0,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0xB1,0xCF,0x87,0x30,
+ 0x30,0x30,0x8D,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xAB,
+ 0x68,0x84,0x30,0x38,0x67,0x72,0x46,0x81,0x53,0xB6,
+ 0xCF,0xCF,0xAF,0x72,0x31,0x30,0x30,0x30,0x30,0x8B,
+ 0xCF,0xC7,0xC8,0x6F,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x36,0xB5,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,
+ 0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0x55,0x6F,0x47,
+ 0x30,0x30,0x30,0x32,0x41,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0x87,
+ 0x71,0x6E,0x6F,0xCF,0xBE,0xCF,0x7C,0x33,0x30,0x30,
+ 0x30,0x30,0x30,0x38,0x62,0x80,0xAB,0xCF,0xCF,0xCF,
+ 0xCF,0xCF,0xCF,0xC9,0xCF,0xCF,0xCF,0x87,0x5A,0x5E,
+ 0x4A,0x30,0x30,0x4F,0x30,0x5E,0xA9,0xA5,0x9D,0x4C,
+ 0x30,0x30,0x30,0x30,0x30,0xBF,0xCF,0xC2,0xCF,0xCF,
+ 0xCF,0xCF,0xCF,0xAB,0x86,0x53,0x30,0x30,0x30,0x35,
+ 0x3D,0x9F,0xB6,0xCF,0xB3,0xCF,0x6F,0xB4,0x5A,0x76,
+ 0x6E,0x92,0x9B,0xC2,0xCC,0xC5,0xCF,0xC8,0x7C,0xAA,
+ 0x5F,0x73,0x73,0x71,0x41,0x3D,0x6C,0x6A,0x53,0x4A,
+ 0x31,0x30,0x30,0x3D,0x31,0x58,0x7D,0x60,0x4A,0x83,
+ 0xA2,0x6F,0x65,0x83,0x87,0xA5,0x8B,0xAB,0xC3,0xC8,
+ 0x92,0x3D,0x50,0x58,0x88,0x9B,0x97,0xB1,0xB3,0xA1,
+ 0xC3,0xCF,0xC9,0xCF,0xCF,0xCF,0xCF,0x78,0x8D,0x5B,
+ 0x73,0x59,0x62,0x45,0x30,0x4E,0x4E,0x46,0x8B,0x8E,
+ 0x4C,0x6F,0x7D,0x6F,0x7B,0x6D,0x41,0x98,0x68,0xB4,
+ 0xCF,0xCF,0xB1,0x5F,0x4C,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x6A,0x77,0x96,0x86,0xCF,0x8D,0x84,0x58,
+ 0x58,0x4C,0x5F,0xA0,0xBB,0xCF,0xC2,0xCF,0xCE,0xB6,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample33[407]={
+ 0x7B,0x7E,0x81,0x86,0x8F,0x92,0x90,0x8C,0x88,0x92,
+ 0x68,0xA8,0x7C,0x57,0x57,0x70,0x9F,0xA8,0xA8,0xA8,
+ 0xA8,0x57,0x57,0x57,0x57,0x57,0x57,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0x57,0x57,0x57,0x57,0x57,0x57,0xA8,
+ 0xA8,0xA8,0xA8,0x6E,0x5D,0x57,0x57,0x57,0x79,0x9F,
+ 0x76,0xA8,0xA8,0xA8,0x8D,0x6C,0xA8,0x93,0x86,0x70,
+ 0x6E,0x57,0x57,0x57,0x57,0x57,0x67,0x76,0x96,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0x57,0x57,0x57,0x57,
+ 0x5F,0x57,0x7C,0x83,0x8D,0x5E,0x57,0x57,0x57,0x57,
+ 0x57,0x63,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0x8B,0x72,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,
+ 0x57,0x57,0x57,0x57,0x57,0x7C,0x85,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0x92,0xA8,0x90,0x90,
+ 0x57,0x57,0x57,0x57,0x57,0x57,0x99,0xA8,0x83,0x57,
+ 0x57,0x57,0x86,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0x96,
+ 0x73,0x82,0x57,0x5B,0x73,0x79,0x62,0x80,0x69,0x9B,
+ 0xA8,0xA8,0x98,0x79,0x58,0x57,0x57,0x57,0x57,0x85,
+ 0xA8,0xA4,0xA4,0x77,0x57,0x57,0x57,0x57,0x57,0x57,
+ 0x57,0x5A,0x9B,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0x6A,0x77,0x63,
+ 0x57,0x57,0x57,0x58,0x60,0x57,0x57,0x57,0x57,0x57,
+ 0x57,0x57,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0x83,
+ 0x78,0x77,0x77,0xA8,0x9F,0xA8,0x7E,0x59,0x57,0x57,
+ 0x57,0x57,0x57,0x5B,0x70,0x80,0x96,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA5,0xA8,0xA8,0xA8,0x83,0x6D,0x6E,
+ 0x64,0x57,0x57,0x67,0x57,0x6E,0x94,0x92,0x8F,0x66,
+ 0x57,0x57,0x57,0x57,0x57,0xA0,0xA8,0xA1,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0x96,0x83,0x69,0x57,0x57,0x57,0x5A,
+ 0x5E,0x8F,0x9B,0xA8,0x99,0xA8,0x77,0x9A,0x6D,0x7A,
+ 0x77,0x89,0x8D,0xA1,0xA6,0xA3,0xA8,0xA4,0x7E,0x95,
+ 0x6F,0x79,0x79,0x78,0x60,0x5E,0x75,0x75,0x69,0x64,
+ 0x58,0x57,0x57,0x5E,0x58,0x6B,0x7E,0x70,0x64,0x81,
+ 0x91,0x77,0x72,0x81,0x83,0x92,0x85,0x96,0xA2,0xA4,
+ 0x89,0x5E,0x67,0x6B,0x84,0x8D,0x8C,0x99,0x99,0x91,
+ 0xA2,0xA8,0xA5,0xA8,0xA8,0xA8,0xA8,0x7C,0x86,0x6D,
+ 0x79,0x6C,0x70,0x62,0x57,0x66,0x66,0x62,0x85,0x87,
+ 0x66,0x77,0x7E,0x77,0x7D,0x76,0x60,0x8C,0x73,0x9A,
+ 0xA8,0xA8,0x99,0x6F,0x66,0x57,0x57,0x57,0x57,0x57,
+ 0x57,0x57,0x75,0x7B,0x8B,0x83,0xA8,0x86,0x82,0x6B,
+ 0x6B,0x66,0x6F,0x90,0x9E,0xA8,0xA1,0xA8,0xA7,0x9B,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample34[317]={
+ 0x80,0x80,0x86,0x8A,0x88,0x9C,0xD0,0x78,0xB6,0xBA,
+ 0xCA,0xBC,0xBA,0xEA,0x82,0xB8,0x8A,0xB2,0x70,0x82,
+ 0x7C,0x6A,0x3C,0x10,0x00,0x54,0x14,0x00,0xFF,0x00,
+ 0x7E,0x00,0x00,0x00,0x00,0x16,0x28,0x38,0x44,0x4E,
+ 0x58,0x60,0x66,0x00,0x00,0x00,0x00,0x00,0x2C,0x8A,
+ 0xE4,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,
+ 0xE0,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x2A,0x38,0x4C,0x5C,0x6C,0x7E,
+ 0x8A,0x98,0x90,0x90,0xA6,0x9E,0xAA,0xBC,0x9A,0xC8,
+ 0xC4,0x8A,0x9E,0xCA,0xD8,0xDA,0xF8,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,0xE2,0xC4,0xA2,0x76,0x44,0x2E,0x08,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x4A,0x6E,
+ 0x94,0xBE,0xE8,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,0xD8,0xB6,0x90,0x7A,0x5C,0x46,0x30,0x1E,
+ 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x02,0x12,0x1E,0x2C,0x3C,0x44,0x52,0x66,0x6E,0x7A,
+ 0x7E,0x88,0x8C,0x90,0x8C,0x8E,0x8C,0x88,0x80,0x7A,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample35[407]={
+ 0x7E,0x80,0x80,0x7C,0x74,0x74,0x7E,0x84,0x8A,0xA2,
+ 0x5A,0x3C,0x02,0x28,0xFF,0xFF,0xFF,0xF2,0x88,0x00,
+ 0x00,0x00,0x00,0x00,0x3C,0xEE,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0x34,0x26,0x00,0x02,0x5C,0xAC,0x8E,0x00,
+ 0x00,0x00,0x00,0x00,0x40,0x82,0xFC,0xE0,0xEE,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xE6,0xDE,0x92,0x56,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x5C,0x78,
+ 0xD6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0x8C,0x52,0x00,0x06,0x1E,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x06,0x66,0xB0,0xEE,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCA,0xBC,0xC0,0x38,
+ 0x46,0x7C,0x64,0x0C,0x00,0x38,0x0E,0x00,0x00,0x00,
+ 0x5A,0x48,0x8E,0xC0,0x62,0xC4,0xFF,0xFF,0xFF,0xB8,
+ 0x76,0xB8,0xCE,0xFF,0x94,0x40,0x7C,0x0E,0x4C,0x48,
+ 0x68,0x24,0x9A,0x3C,0x0C,0x00,0x20,0x58,0xFC,0x90,
+ 0x98,0xFF,0xBE,0xB2,0xBE,0xA2,0xBC,0x26,0x5E,0x7C,
+ 0xAE,0xEA,0xA8,0x78,0x66,0xB4,0x7E,0xC4,0xFF,0x00,
+ 0x00,0x3E,0x70,0x66,0x00,0x56,0xEA,0x00,0x9E,0xFF,
+ 0x3E,0x00,0x7C,0xFF,0x6C,0x28,0xFF,0xFF,0x7C,0x78,
+ 0xFF,0x96,0x04,0x9E,0xDC,0xFF,0x0E,0x00,0x54,0x14,
+ 0xA0,0xDC,0x50,0x84,0x82,0x00,0x00,0x70,0xC4,0x00,
+ 0x5E,0xF8,0x00,0x26,0xFF,0xEA,0xCA,0x84,0x9A,0x7E,
+ 0xFF,0xE2,0xC2,0x64,0xA6,0x32,0x0A,0xC2,0x22,0x3C,
+ 0x18,0xA6,0x62,0x10,0x02,0x7A,0x00,0x4C,0xD0,0x5A,
+ 0xFE,0xE0,0x80,0x5C,0x9C,0xFF,0xFF,0xB6,0x92,0x44,
+ 0x96,0x76,0x0E,0xB0,0x40,0xCC,0xA6,0x48,0x06,0x0E,
+ 0x90,0x00,0x00,0xC0,0xC6,0x82,0x4E,0xB4,0xFF,0x92,
+ 0xAC,0x60,0x62,0xA2,0x98,0xFF,0xB6,0xEE,0x68,0x54,
+ 0xA2,0x52,0x86,0x2A,0x92,0x4A,0x74,0x9A,0x68,0x0C,
+ 0xE0,0x8E,0x2A,0x5C,0x4C,0x38,0x40,0x88,0x52,0x94,
+ 0xBA,0xD2,0xBE,0xE8,0x56,0x16,0x42,0x80,0x54,0xFF,
+ 0xBA,0xAA,0xB6,0x64,0x74,0xD0,0xAE,0x66,0x68,0x8A,
+ 0x70,0x36,0x16,0x28,0x2A,0x82,0x88,0xAE,0x94,0x52,
+ 0x72,0x86,0x5A,0x94,0xB6,0xFF,0xA4,0x78,0xB8,0xD2,
+ 0x70,0x6E,0xE2,0x72,0xA4,0x7E,0x5A,0x42,0x3E,0x64,
+ 0x68,0x76,0x0A,0x4A,0x00,0x42,0x24,0x56,0x80,0x50,
+ 0x7E,0xB2,0xBC,0xB2,0xCE,0xD4,0xDE,0xCE,0xFF,0x7A,
+ 0xBE,0x9A,0x8C,0x8E,0x68,0x00,0x2A,0x36,0x3C,0x88,
+ 0xA6,0x7C,0x7C,0x7A,0x5C,0x96,0x5C,0x08,0x8A,0x7A,
+ 0x88,0xB2,0xF4,0xCC,0x6C,0xF0,0xC2,0x9C,0xDC,0x9A,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample36[311]={
+ 0x82,0xA0,0x78,0x88,0xA6,0xAC,0x72,0xBC,0x2C,0xC4,
+ 0x52,0x86,0xA4,0x28,0xFF,0x00,0xFF,0x2A,0x7A,0xFF,
+ 0x00,0xFF,0x64,0x3A,0x8C,0x38,0xB6,0x26,0xFF,0x00,
+ 0xFF,0x00,0xCE,0x44,0x5C,0x6A,0x50,0x6E,0x20,0x58,
+ 0x86,0x66,0x00,0xBA,0x10,0xB8,0x5E,0x26,0xDA,0x32,
+ 0xFA,0xB6,0xFF,0xD8,0xFF,0xE2,0xFF,0xDC,0xFF,0xF0,
+ 0xFF,0xDE,0xC8,0xFF,0xB4,0x8E,0x96,0x68,0xA2,0x1A,
+ 0xB6,0x00,0x72,0x24,0x36,0x04,0x28,0x08,0x0E,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0E,0x0A,0x1E,0x40,0x5C,0x6E,0x6C,0x70,
+ 0xB0,0x7E,0xD6,0xE0,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF4,0xE0,0xA2,
+ 0xD4,0x64,0xB8,0x60,0x18,0x3E,0x22,0x00,0x18,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x1A,0x24,0x34,
+ 0x48,0x40,0x7A,0x60,0xA8,0x98,0xCE,0xDA,0xD0,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,
+ 0xB4,0xB2,0x92,0x8A,0x62,0x50,0x42,0x1C,0x16,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x12,0x18,0x34,0x3E,0x58,0x7A,0x88,0x94,0xC4,
+ 0xD2,0xF2,0xF2,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,0xEC,0xE0,0xCE,0xC8,
+ 0xA6,0xAA,0x74,0x90,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,};
+static ymu8 sample37[459]={
+ 0x81,0x82,0x85,0x85,0x81,0x7E,0x7A,0x77,0x30,0x00,
+ 0x4B,0x94,0xEF,0xDF,0xC2,0xFF,0x00,0xFF,0xFF,0xFF,
+ 0xFF,0x00,0x6D,0x0F,0x17,0x00,0x10,0x00,0x00,0x00,
+ 0x00,0x30,0x08,0x00,0x84,0x6F,0xE9,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAF,0x04,
+ 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x1F,0x00,0x00,0xFF,0xE6,0xEF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD4,
+ 0x5E,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x13,0x30,0x86,0xCF,0xEE,0xFF,0xEE,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xF5,0xC3,0x71,0x48,0x21,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x3A,0x78,
+ 0xAD,0xF5,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xCF,0xF7,0xBE,0x98,0x1A,0x47,0x07,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,
+ 0xB0,0xAB,0xC7,0xFA,0xF9,0xFF,0xF9,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xE6,0xFF,0xE3,0xCE,0xA2,0xAD,0x1A,
+ 0x41,0x16,0x00,0x04,0x04,0x22,0x00,0x00,0x00,0x00,
+ 0x04,0x25,0x75,0x4B,0x87,0xCB,0xEB,0xFF,0xF7,0xFF,
+ 0xFF,0xE8,0x8E,0xFA,0xFF,0xE3,0xFE,0x44,0x86,0xEF,
+ 0x75,0x21,0x59,0xC8,0x3B,0x07,0x32,0x37,0xB0,0x18,
+ 0x05,0xCE,0x4A,0x18,0x13,0x50,0x73,0x95,0x07,0x9D,
+ 0xC6,0xE5,0xC8,0xEE,0xCE,0xB0,0x8D,0x85,0xB5,0xA0,
+ 0x9A,0x86,0xEF,0xA5,0x8A,0xA9,0x83,0xF6,0x8B,0x60,
+ 0x80,0x16,0x02,0x8E,0x33,0x07,0x77,0x92,0x4C,0x08,
+ 0x98,0x70,0x70,0x55,0x4B,0xBE,0x78,0x2F,0xB9,0x56,
+ 0xBB,0x66,0xA5,0x83,0xBB,0xA8,0xD7,0x5E,0xE7,0x89,
+ 0xBD,0xEA,0xB7,0xB7,0xB4,0x57,0x82,0x83,0x68,0x7A,
+ 0xA4,0x61,0x4E,0x2A,0x3E,0x22,0x6E,0x46,0x1E,0x7B,
+ 0x23,0x88,0x91,0x75,0xA1,0xCF,0x80,0xC3,0x60,0x8C,
+ 0xB3,0x88,0xD3,0xB1,0x75,0xA5,0xD7,0xDD,0xD2,0x78,
+ 0x4C,0x62,0x74,0x34,0x86,0xC6,0x7B,0x58,0x03,0x5B,
+ 0x93,0x29,0x5B,0x4F,0x3C,0xA6,0x6A,0x56,0x8D,0x9E,
+ 0x5F,0x6B,0xCB,0x6C,0x5C,0xC9,0x8C,0x87,0x95,0x5D,
+ 0x9C,0xE2,0xDA,0x79,0xA9,0x87,0x96,0x99,0x8B,0x60,
+ 0xA6,0xA3,0x8C,0xB2,0x60,0x92,0x63,0x94,0x0F,0x7D,
+ 0x32,0x3F,0x6D,0x3A,0x66,0x5E,0x81,0x85,0x8E,0x77,
+ 0x53,0x7B,0xD5,0xA9,0xC3,0x9F,0x97,0xBC,0x9C,0xAA,
+ 0xA5,0x6F,0xB0,0xB6,0x96,0x51,0x46,0x76,0x76,0x4C,
+ 0x44,0x3D,0x70,0x3B,0x4C,0x3C,0x42,0x51,0x91,0x9B,
+ 0x65,0xBA,0x99,0x96,0x69,0x6F,0x9C,0xA0,0xA6,0xCA,
+ 0x80,0x9B,0x93,0xC1,0x8F,0x8A,0xAD,0x70,0x73,0x95,
+ 0x47,0xA2,0xAB,0x54,0x8D,0x4F,0x7A,0x7D,0x6D,0x87,
+ 0x48,0x80,0x69,0x69,0x5F,0x7C,0x5E,0x72,0x5C,0x8E,
+ 0x59,0x93,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample38[329]={
+ 0xAE,0xAC,0x84,0x7A,0x52,0x5C,0x5C,0x24,0xFF,0xFF,
+ 0x8E,0x00,0x00,0x76,0xFF,0xFF,0xFF,0xFF,0xDE,0x5A,
+ 0x00,0x00,0x7A,0xCC,0xFF,0xFF,0x00,0x3A,0x00,0x00,
+ 0x00,0x02,0x70,0xFF,0xDA,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xB6,0x14,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
+ 0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x34,0xF4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,0xA0,0x5C,
+ 0x52,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x8A,0xBC,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBC,0x46,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x02,0x3E,0xDE,0xF8,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF6,0xFA,0xD2,
+ 0xEE,0xDC,0xBC,0xA2,0xA0,0xE2,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xCC,0x90,0x50,0x12,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x26,0x56,0x66,0x6C,0x70,0x74,0x90,
+ 0xB6,0xE6,0xFF,0xFF,0xFF,0xFC,0xE6,0xCC,0xB4,0xB8,
+ 0xB4,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xE6,0xA6,0x64,0x42,0x2E,
+ 0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1E,0x4C,
+ 0x4A,0x68,0x84,0x96,0x9E,0xC4,0xE2,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xE4,0xD4,0xB2,0x88,0x74,
+ 0x4E,0x42,0x2E,0x1E,0x22,0x1C,0x32,0x30,0x28,0x1E,
+ 0x20,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x32,
+ 0x6E,0x88,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
+static ymu8 sample39[656]={
+ 0x8A,0x42,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x3C,
+ 0x7A,0xC0,0xDC,0xCE,0xFF,0xFF,0xBC,0xFF,0xFF,0xF4,
+ 0xFF,0xFF,0xE4,0xC8,0x6E,0x28,0x44,0x00,0x08,0x00,
+ 0x00,0x00,0x00,0x00,0x60,0x64,0x22,0x8E,0xFF,0xE8,
+ 0xBA,0xB0,0xFA,0xFF,0xFF,0xFF,0xFF,0xFF,0xEC,0xB6,
+ 0x84,0x5C,0x60,0x26,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x9A,0x02,0x44,0x34,0x98,0x3E,0x5A,0xFF,
+ 0xF0,0xFF,0xFF,0xFF,0xFF,0x9A,0x46,0x2A,0x00,0x00,
+ 0x00,0x00,0x4C,0x3E,0xC2,0x66,0x00,0x00,0x1E,0x7A,
+ 0xF4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xE4,0x54,0x32,0x4E,0x0A,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x22,0x60,0x34,0x82,0x8E,0xCE,
+ 0xE4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDE,0x78,
+ 0x00,0x00,0x58,0x36,0x32,0x10,0x00,0x20,0x00,0x00,
+ 0x0E,0x00,0x22,0xA4,0xB2,0xFF,0xCC,0xF4,0xB0,0xEA,
+ 0x74,0xCE,0xA6,0xCE,0x78,0x34,0x00,0x1A,0x24,0x00,
+ 0x00,0x00,0xF2,0x50,0x60,0x1E,0x72,0x8C,0x84,0x4E,
+ 0xEC,0xCE,0xFF,0xFF,0xFF,0xFF,0xF8,0x74,0xA2,0xE6,
+ 0xC2,0x16,0x10,0x9A,0x9E,0x2A,0x96,0x70,0x06,0x0E,
+ 0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x00,0x72,0x9E,
+ 0x94,0xFF,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD6,
+ 0x86,0x14,0x68,0x12,0x00,0x40,0x4E,0x00,0x00,0x96,
+ 0x00,0x22,0x4E,0x4A,0x90,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFF,0x56,0xAA,0xE2,0x9A,0x32,0xDC,0x00,0x60,0xA8,
+ 0x2A,0x00,0x76,0x00,0x64,0x80,0x74,0x00,0x82,0x28,
+ 0x98,0x46,0xAC,0x70,0xAA,0xD8,0xF2,0xA8,0x8E,0x8C,
+ 0x82,0xC2,0x44,0xC0,0x8E,0x6E,0xBC,0x26,0xE0,0x4C,
+ 0x5C,0x6E,0x26,0x46,0x00,0x32,0x00,0x9A,0x68,0x38,
+ 0xD8,0x5C,0xDC,0xCA,0xD8,0xF8,0x9C,0xFE,0xFF,0xEE,
+ 0xFF,0xBE,0xC8,0x34,0x6E,0x26,0x00,0x04,0x00,0x7A,
+ 0x0A,0x78,0x10,0x5C,0x44,0x88,0xB2,0x90,0xFF,0xDE,
+ 0xFF,0xFF,0xFF,0xEA,0xC6,0xC4,0xB4,0x76,0x50,0x08,
+ 0x6E,0x5E,0x44,0x9A,0x54,0x3C,0x8E,0x2C,0x5C,0x52,
+ 0x44,0x1C,0xA0,0x7E,0xFF,0xD8,0xC8,0xFF,0xF6,0x9E,
+ 0xA4,0x88,0xC8,0x62,0xBA,0x26,0x42,0x00,0x48,0x2C,
+ 0x6C,0x24,0x92,0x36,0x44,0x92,0xF2,0x80,0x84,0xA6,
+ 0xD8,0x88,0xD8,0x90,0xA0,0xC0,0xAC,0xEC,0x8A,0xB4,
+ 0xC8,0xA6,0x5C,0x88,0x4A,0x4E,0x6A,0x76,0x6C,0xCA,
+ 0x30,0x3C,0x7E,0x2E,0x50,0x00,0x7C,0x66,0x5E,0x9A,
+ 0x9C,0xFF,0xD2,0xFF,0xDE,0x9E,0xDE,0x80,0xEE,0xB8,
+ 0x64,0x46,0x8A,0x0A,0x22,0x58,0x48,0x58,0x2A,0x72,
+ 0x3E,0xA8,0x54,0x46,0xD6,0x5C,0xFC,0xA8,0xC8,0xE0,
+ 0xC0,0xA6,0x5C,0x80,0x24,0x34,0x7E,0x4C,0x9A,0x62,
+ 0x64,0x68,0x94,0x62,0x42,0x72,0xCE,0x72,0xB0,0xAC,
+ 0xB8,0x9A,0x8E,0x80,0x30,0x24,0x1E,0x70,0x14,0x50,
+ 0x86,0x64,0xA2,0xB2,0xBC,0xBE,0xDA,0xCE,0xDC,0xFA,
+ 0xB4,0x7A,0x92,0x38,0x58,0x0E,0x5E,0x56,0x56,0x54,
+ 0x34,0x80,0x54,0x78,0x46,0x38,0xA2,0x94,0x90,0xB0,
+ 0xB8,0xAE,0xEA,0x90,0x78,0x92,0x96,0x58,0x8C,0x4A,
+ 0x56,0x50,0x40,0x66,0x68,0x66,0x80,0x72,0x62,0x64,
+ 0x9C,0x58,0x6E,0x62,0xE2,0x72,0xD0,0xC4,0x7E,0xAE,
+ 0x64,0x8A,0x5C,0x52,0x66,0x5A,0x90,0x6E,0x70,0xA4,
+ 0xFF,0x6C,0xBA,0x74,0xE0,0x56,0x7A,0xAE,0x4A,0x70,
+ 0x80,0x80,0x9A,0x86,0x5E,0xAC,0x90,0xA0,0xA8,0x74,
+ 0x9C,0xB0,0x7A,0xA4,0x66,0x7A,0xB6,0x6A,0x5E,0x7E,
+ 0x74,0x52,0x72,0x58,0x5E,0x5C,0xA2,0x68,0x88,0x96,
+ 0xBE,0xD2,0xAA,0xB2,0x6A,0x66,0x6C,0x6E,0x56,0x68,
+ 0x70,0x52,0x48,0x70,0x7A,0x32,0x82,0x9A,0x62,0x56,
+ 0xAC,0x84,0xAA,0x92,0xE0,0xE2,0xCC,0xC2,0xAA,0x72,
+ 0x74,0x6C,0x4C,0x46,0x54,0x68,0x42,0x6E,0x5E,0x74,
+ 0x8E,0x6E,0x98,0xC4,0x76,0x98,0xBE,0x92,0xAA,0xA8,
+ 0xB2,0x9C,0xA4,0x82,0xC0,0x88,0x6E,0x52,0x70,0x2E,
+ 0x28,0x54,0x4E,0x5A,0xAC,0x62,0x8C,0xC0,0x7E,0x74,
+ 0x92,0x8A,0xB2,0xA4,0x8A,0x7A,0x9E,0x62,0x7E,0x92,
+ 0x74,0xA8,0x7A,0x8A,0x94,0x50,0x9C,0x90,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,};
+/***********************************************************/
+
+ymu8 *sampleAdress[40] = {
+ sample00,sample01,sample02,sample03,sample04,sample05,sample06,sample07,
+ sample08,sample09,sample10,sample11,sample12,sample13,sample14,sample15,
+ sample16,sample17,sample18,sample19,sample20,sample21,sample22,sample23,
+ sample24,sample25,sample26,sample27,sample28,sample29,sample30,sample31,
+ sample32,sample33,sample34,sample35,sample36,sample37,sample38,sample39,};
+
+/***********************************************************/
+
+ymu32 sampleLen[40] = {
+ 631, 631, 490, 490, 699, 505, 727, 480,
+ 2108, 4231, 378, 1527, 258, 258, 451, 1795,
+ 271, 633, 1379, 147, 139, 85, 150, 507,
+ 230, 120, 271, 293, 391, 391, 391, 407,
+ 407, 407, 317, 407, 311, 459, 329, 656,};
+
+/*********************** END OF FILE ***********************/
diff --git a/lib/stsound/StSoundLibrary/digidrum.h b/lib/stsound/StSoundLibrary/digidrum.h
new file mode 100644
index 0000000000..4b39459956
--- /dev/null
+++ b/lib/stsound/StSoundLibrary/digidrum.h
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------
+
+ ST-Sound ( YM files player library )
+
+ Copyright (C) 1995-1999 Arnaud Carre ( http://leonard.oxg.free.fr )
+
+ Sample datas of some common YM music. ( YM2 format )
+ YM3 or greater uses sample data inside the music file.
+
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+
+ This file is part of ST-Sound
+
+ ST-Sound is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ ST-Sound is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ST-Sound; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-----------------------------------------------------------------------------*/
+
+#ifndef __DIGIDRUM__
+#define __DIGIDRUM__
+
+extern ymu8 * sampleAdress[];
+extern ymu32 sampleLen[];
+
+#endif
+
diff --git a/lib/stsound/license.txt b/lib/stsound/license.txt
new file mode 100644
index 0000000000..afd5a9471a
--- /dev/null
+++ b/lib/stsound/license.txt
@@ -0,0 +1,341 @@
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/lib/stsound/readme.html b/lib/stsound/readme.html
new file mode 100644
index 0000000000..5c64b70345
--- /dev/null
+++ b/lib/stsound/readme.html
@@ -0,0 +1,151 @@
+<html>
+<head>
+<title>Open Source ST-Sound</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<style>a:hover { color:#00FFFF; }body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: xx-small; font-style: normal; line-height: normal; font-weight: normal; font-variant: normal; text-transform: none}
+</style>
+<body bgcolor="#FFFFFF" vlink="#000098" alink="#CCCCCC" link="#000099">
+<table width="100%" border="0" height="60">
+ <tr bgcolor="#505078" valign="top">
+ <td height="19" colspan="2">
+ <title></title>
+ <div align="center">
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF90"><font size="3">Open
+ Source ST-Sound Library </font><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF90" size="3">by
+ Arnaud Carr&eacute;<br>
+ </font><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF90"><font size="3">v1.2</font></font><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF90" size="3"><br>
+ <font color="#FFFFFF">10 years later !! :-)</font></font></font></p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td height="3" colspan="2">&nbsp;</td>
+ </tr>
+ <tr valign="top">
+ <td height="2" colspan="2">
+ <table width="100%" border="0">
+ <tr>
+ <td colspan="2"><font size="2"></font></td>
+ </tr>
+ <tr bgcolor="#A00038">
+ <td colspan="2"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">History...</font></b></td>
+ </tr>
+ <tr>
+ <td colspan="2" height="119">
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">In
+ 1995 I created the <a href="http://leonard.oxg.free.fr/stsound.html">YM
+ file format and wrote ST-Sound</a>, a program to play ATARI-ST on
+ your PC. I was very happy to see how ST-Sound was popular. MS-Dos
+ player at first, I write a Windows player, a winamp and a netscape
+ plugin. ( then some website use Atari tunes !).</font></p>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">And
+ then time passed and I worked on other stuff. Quite often, some
+ people asked me to release the source code, and I always answered
+ that I should clean some code and add license stuff, so I never
+ take time..</font></p>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Now
+ it's done ! 2005, ten years after the first ST-Sound creation, here
+ is the ST-Sound library with sample project, all under GPL license.
+ The code is not as clean as I hope but no time to change it. Don't
+ forget almost all that stuff was written in 1995 :-)</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><font size="2"></font></td>
+ </tr>
+ <tr bgcolor="#A00038">
+ <td colspan="2"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Package
+ details </font></b></td>
+ </tr>
+ <tr>
+ <td colspan="2" height="272">
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ST-Sound
+ library package comes with four main directories.:</font></p>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>StSoundLibrary</b></font></p>
+ <blockquote>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">This
+ is the most important directory. Portable ( I hope !! :-)) C++
+ code to play YM files into your own production. There is a simple
+ &quot;C like&quot; user API, and you just need to include &quot;StSoundLibrary.h&quot;
+ to work with YM files. See tutorial projects for details. Theorically
+ should compile under windows, linux, etc.</font></p>
+ </blockquote>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>YmToWav</b></font></p>
+ <blockquote>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Tutorial
+ code. Portable ( I hope !! :-)) code to render an YM file into
+ a WAV file. Works in command line. theorically should compile
+ under windows, linux, etc. </font></p>
+ </blockquote>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>SmallYmPlayer</b></font></p>
+ <blockquote>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Tutorial
+ code. Non portable (windows only) real time YM player using StSoundLibrary.
+ Works under windows (use the waveOut sound API)</font></p>
+ </blockquote>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>YmSampleFiles</b></font></p>
+ <blockquote>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Only
+ contains a set of YM sample files to fastly test the library without
+ browsing the whole world wide web ! :-)</font></p>
+ </blockquote>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><font size="2"></font></td>
+ </tr>
+ <tr bgcolor="#A00038">
+ <td colspan="2"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Compiling</font></b></td>
+ </tr>
+ <tr>
+ <td colspan="2" height="12">
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">The
+ package is done to work very nicely with Microsoft Visual C++ 6.0
+ ( Visual .NET is pure bullshit! )</font></p>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">For
+ Visual C++ 6.0 users: Load StSoundGPL.dsw file into your lovely
+ IDE and just build one of the tutorial sample or the main library.
+ Everything should work like a charm without pain.</font></p>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">For
+ other users ( .NET, Linux, Gameboy color or other strange system),
+ just search in your head some very, very oldschool knowledge and
+ build a nice makefile :-) ( should be easy for StSoundLibrary) </font></p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><font size="2"></font></td>
+ </tr>
+ <tr bgcolor="#A00038">
+ <td colspan="2"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Legal
+ infos </font></b></td>
+ </tr>
+ <tr>
+ <td colspan="2" height="119">
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ST-Sound
+ library, Copyright (C) 1995-1999 Arnaud Carr&eacute; ( <a href="http://leonard.oxg.free.fr">http://leonard.oxg.free.fr</a>
+ )</font></p>
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ST-Sound
+ library is distributed under <a href="http://www.gnu.org/copyleft/gpl.html">GNU
+ GPL license</a>. If you use it in your own production, please include
+ at least that ZIP package and make me a little credits :-). You
+ can find the GPL legal file within that package ( license.txt ).</font></p>
+ <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">As
+ almost all YM files on the web are packed with LZH method, ST-Sound
+ includes LZH depacking code written by Haruhiko Okumura and modifyed/improved
+ by Kerwin F. Medina.</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><font size="2"></font></td>
+ </tr>
+ </table>
+ <p align="left">Enjoy ATARI-ST sound !!</p>
+ <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="http://leonard.oxg.free.fr" target="_blank">http://leonard.oxg.free.fr</a></font></p>
+ </td>
+ </tr>
+</table>
+<p>&nbsp;</p>
+<p>&nbsp; </p>
+</body>
+</html>
diff --git a/lib/stsound/revision.txt b/lib/stsound/revision.txt
new file mode 100644
index 0000000000..b56ad8a4e4
--- /dev/null
+++ b/lib/stsound/revision.txt
@@ -0,0 +1,20 @@
+v1.1b
+----------------------------------------------------
+- runtime build in basic types size checking
+- some "short" types converted to ymsample
+
+v1.1
+----------------------------------------------------
+- YmTypes.h added to help multiplatform port
+- Added Sync-Buzzer sound effect support
+- Integer only version (no float or double used by default)
+- Small changes in C interface (ymMusicCreate and ymMusicDestroy added)
+- little/big endian fixed for bigendian platform (depacking and Ym3b format)
+- Memory leak fixed in LZHXLIB library
+- printf fixed in the YM to WAV sample code
+
+
+
+v1.0
+----------------------------------------------------
+- First release.