diff options
author | theuni <theuni-nospam-@xbmc.org> | 2011-01-24 16:05:21 -0500 |
---|---|---|
committer | theuni <theuni-nospam-@xbmc.org> | 2011-01-24 16:05:21 -0500 |
commit | c51b1189e3d5353e842991f5859ddcea0f73e426 (patch) | |
tree | ef2cb8a6184699aa614f3655dca4ce661cdc108e /lib/stsound | |
parent | be61ebdc9e897fe40c6f371111724de79ddee8d5 (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')
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é<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"> </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 + "C like" user API, and you just need to include "StSoundLibrary.h" + 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é ( <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> </p> +<p> </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. |