diff options
author | Norbert Lange | 2009-08-09 20:20:42 +0000 |
---|---|---|
committer | Norbert Lange | 2009-08-09 20:20:42 +0000 |
commit | ab529d8e0c4a7af2cbb0a3dbf131eb0c1d68254d (patch) | |
tree | 038bbeb2127b5802ca9f15709b439cb9705576c9 /engines | |
parent | b4c689a3c1fbf74e6286c320cfcd820a72745f57 (diff) | |
download | scummvm-rg350-ab529d8e0c4a7af2cbb0a3dbf131eb0c1d68254d.tar.gz scummvm-rg350-ab529d8e0c4a7af2cbb0a3dbf131eb0c1d68254d.tar.bz2 scummvm-rg350-ab529d8e0c4a7af2cbb0a3dbf131eb0c1d68254d.zip |
prepare the kyraplayer for reading sfxtables from raw data (instead of static tables)
svn-id: r43184
Diffstat (limited to 'engines')
-rw-r--r-- | engines/kyra/sound_amiga.cpp | 229 | ||||
-rw-r--r-- | engines/kyra/sound_intern.h | 2 | ||||
-rw-r--r-- | engines/kyra/staticres.cpp | 168 |
3 files changed, 208 insertions, 191 deletions
diff --git a/engines/kyra/sound_amiga.cpp b/engines/kyra/sound_amiga.cpp index 1fb97037c5..3d552fda0e 100644 --- a/engines/kyra/sound_amiga.cpp +++ b/engines/kyra/sound_amiga.cpp @@ -33,16 +33,24 @@ #include "sound/audiostream.h" namespace { -struct EffectEntry { - uint16 duration; - uint8 note; - uint8 patch; - int8 volume; - int8 pan; -}; -extern const EffectEntry tableEffectsIntro[40]; -extern const EffectEntry tableEffectsGame[120]; + +FORCEINLINE uint8 sfxTableGetNote(const byte* address) { + return (uint8)address[0]; +} +FORCEINLINE uint8 sfxTableGetPatch(const byte* address) { + return (uint8)address[1]; +} +FORCEINLINE uint16 sfxTableGetDuration(const byte* address) { + return READ_BE_UINT16(&address[4]); +} +FORCEINLINE int8 sfxTableGetVolume(const byte* address) { + return (int8)address[6]; } +FORCEINLINE int8 sfxTableGetPan(const byte* address) { + return (int8)address[7]; +} + +} // end of namespace namespace Kyra { @@ -50,7 +58,9 @@ SoundAmiga::SoundAmiga(KyraEngine_v1 *vm, Audio::Mixer *mixer) : Sound(vm, mixer), _driver(0), _musicHandle(), - _fileLoaded(kFileNone) { + _fileLoaded(kFileNone), + _tableSfxIntro(), + _tableSfxGame() { } SoundAmiga::~SoundAmiga() { @@ -58,9 +68,15 @@ SoundAmiga::~SoundAmiga() { delete _driver; } +extern const byte LoKAmigaSfxIntro[]; +extern const byte LoKAmigaSfxGame[]; + bool SoundAmiga::init() { _driver = new Audio::MaxTrax(_mixer->getOutputRate(), true); - return _driver != 0; + _tableSfxIntro = LoKAmigaSfxIntro; + _tableSfxGame = LoKAmigaSfxGame; + + return _driver != 0 && _tableSfxIntro && _tableSfxGame; } void SoundAmiga::loadSoundFile(uint file) { @@ -179,15 +195,16 @@ void SoundAmiga::beginFadeOut() { void SoundAmiga::playSoundEffect(uint8 track) { debug("play sfx %d", track); - const EffectEntry *entry = 0; + const byte* tableEntry = 0; bool pan = false; switch (_fileLoaded) { case kFileFinal: case kFileIntro: - assert(track < ARRAYSIZE(tableEffectsIntro)); - entry = &tableEffectsIntro[track]; - pan = (entry->pan != 0); + assert(track < 40); + + tableEntry = &_tableSfxIntro[track * 8]; + pan = (sfxTableGetPan(tableEntry) != 0); break; case kFileGame: @@ -195,193 +212,23 @@ void SoundAmiga::playSoundEffect(uint8 track) { if (0x61 <= track && track <= 0x63) playTrack(track - 0x4F); - assert(track < ARRAYSIZE(tableEffectsGame)); + assert(track < 120); // variable(0x1BFE2) && tableEffectsGame[track].note, which gets set for ingame and unset for finale // (and some function reverses its state) - if (tableEffectsGame[track].note) { - entry = &tableEffectsGame[track]; - pan = (entry->pan != 0) && (entry->pan != 2); + if (sfxTableGetNote(&_tableSfxGame[track * 8])) { + tableEntry = &_tableSfxGame[track * 8]; + pan = (sfxTableGetPan(tableEntry) != 0) && (sfxTableGetPan(tableEntry) != 2); } break; default: ; } - if (entry) { - const bool success = _driver->playNote(entry->note, entry->patch, entry->duration, entry->volume, pan); + if (tableEntry) { + const bool success = _driver->playNote(sfxTableGetNote(tableEntry), sfxTableGetPatch(tableEntry), sfxTableGetDuration(tableEntry), sfxTableGetVolume(tableEntry), pan); if (success && !_mixer->isSoundHandleActive(_musicHandle)) _mixer->playInputStream(Audio::Mixer::kPlainSoundType, &_musicHandle, _driver, -1, Audio::Mixer::kMaxChannelVolume, 0, false); } } } // end of namespace Kyra - -namespace { - -const EffectEntry tableEffectsIntro[40] = { - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x252C, 0x3C, 0x19, 110, 0 }, - { 0x252C, 0x3C, 0x19, 110, 0 }, - { 0x252C, 0x3C, 0x19, 110, 0 }, - { 0x1B91, 0x3C, 0x13, 110, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x2677, 0x3C, 0x16, 110, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x1198, 0x3C, 0x17, 110, 0 }, - { 0x252C, 0x3C, 0x19, 110, 0 }, - { 0x22D1, 0x3C, 0x18, 110, 0 }, - { 0x252C, 0x3C, 0x19, 110, 0 }, - { 0x0224, 0x45, 0x03, 110, 0 }, - { 0x2677, 0x3C, 0x16, 110, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 } -}; - -const EffectEntry tableEffectsGame[120] = { - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x01, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0156, 0x3C, 0x13, 120, 2 }, - { 0x272C, 0x3C, 0x14, 120, 2 }, - { 0x1B91, 0x3C, 0x15, 120, 2 }, - { 0x1E97, 0x3C, 0x16, 120, 2 }, - { 0x122B, 0x3C, 0x17, 120, 2 }, - { 0x1E97, 0x3C, 0x16, 120, 2 }, - { 0x0224, 0x45, 0x03, 120, 2 }, - { 0x1E97, 0x3C, 0x16, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x0910, 0x2C, 0x04, 120, 2 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x3AEB, 0x3C, 0x1A, 120, 2 }, - { 0x138B, 0x25, 0x1B, 120, 2 }, - { 0x0F52, 0x18, 0x03, 120, 2 }, - { 0x0622, 0x3E, 0x1C, 120, 2 }, - { 0x0754, 0x3B, 0x1C, 120, 2 }, - { 0x206F, 0x16, 0x03, 120, 2 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x09EA, 0x3C, 0x1D, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x272C, 0x3C, 0x14, 120, 2 }, - { 0x036E, 0x3C, 0x1E, 120, 2 }, - { 0x122B, 0x3C, 0x17, 120, 2 }, - { 0x0991, 0x4E, 0x0B, 120, 2 }, - { 0x02BC, 0x47, 0x1B, 120, 2 }, - { 0x0211, 0x4C, 0x1B, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0156, 0x3C, 0x13, 120, 2 }, - { 0x0156, 0x3C, 0x13, 120, 2 }, - { 0x0E9E, 0x3C, 0x1F, 120, 2 }, - { 0x010C, 0x3C, 0x20, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x0F7C, 0x3C, 0x21, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x4C47, 0x2A, 0x0B, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0528, 0x3C, 0x1B, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0910, 0x2C, 0x04, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0AEE, 0x3C, 0x22, 120, 2 }, - { 0x1E97, 0x3C, 0x16, 120, 2 }, - { 0x1B91, 0x3C, 0x15, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x272C, 0x3C, 0x14, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0AEE, 0x3C, 0x22, 120, 2 }, - { 0x272C, 0x3C, 0x14, 120, 2 }, - { 0x1419, 0x32, 0x23, -100, 2 }, - { 0x171C, 0x3C, 0x19, 120, 2 }, - { 0x272C, 0x3C, 0x14, 120, 2 }, - { 0x0622, 0x3E, 0x1C, 120, 2 }, - { 0x0201, 0x43, 0x13, 120, 2 }, - { 0x1243, 0x3C, 0x24, 90, 2 }, - { 0x00EE, 0x3E, 0x20, 120, 2 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x19EA, 0x29, 0x04, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x010C, 0x3C, 0x20, 120, 2 }, - { 0x30B6, 0x3C, 0x25, 120, 2 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x1E97, 0x3C, 0x16, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x3AEB, 0x3C, 0x1A, 120, 2 }, - { 0x39F3, 0x1B, 0x04, 120, 2 }, - { 0x1699, 0x30, 0x23, 80, 2 }, - { 0x1B91, 0x3C, 0x15, 120, 2 }, - { 0x19EA, 0x29, 0x06, 80, 2 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x3AEB, 0x3C, 0x1A, 120, 2 }, - { 0x252C, 0x3C, 0x19, 120, 2 }, - { 0x0713, 0x3C, 0x26, 120, 2 }, - { 0x0713, 0x3C, 0x26, 120, 2 }, - { 0x272C, 0x3C, 0x14, 120, 2 }, - { 0x1699, 0x30, 0x23, 80, 2 }, - { 0x1699, 0x30, 0x23, 80, 2 }, - { 0x0000, 0x00, 0x00, 0, 0 }, - { 0x0156, 0x3C, 0x13, 120, 2 } -}; - -} // end of namespace diff --git a/engines/kyra/sound_intern.h b/engines/kyra/sound_intern.h index 812c1b6392..b85b8a2e30 100644 --- a/engines/kyra/sound_intern.h +++ b/engines/kyra/sound_intern.h @@ -309,6 +309,8 @@ protected: Audio::MaxTrax *_driver; Audio::SoundHandle _musicHandle; enum FileType { kFileNone = -1, kFileIntro = 0, kFileGame = 1, kFileFinal = 2 } _fileLoaded; + const byte *_tableSfxIntro; + const byte *_tableSfxGame; }; } // end of namespace Kyra diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp index cf0b327a8d..c7bef26d61 100644 --- a/engines/kyra/staticres.cpp +++ b/engines/kyra/staticres.cpp @@ -3355,4 +3355,172 @@ const int LoLEngine::_outroMonsterScaleTableY[] = { #endif // ENABLE_LOL +// TODO: fileoffset = 0x32D5C, len = 40 * 8 +extern const byte LoKAmigaSfxIntro[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x6E, 0x00, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x6E, 0x00, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x6E, 0x00, + 0x3C, 0x13, 0x00, 0x00, 0x1B, 0x91, 0x6E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x16, 0x00, 0x00, 0x26, 0x77, 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, + 0x3C, 0x17, 0x00, 0x00, 0x11, 0x98, 0x6E, 0x00, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x6E, 0x00, + 0x3C, 0x18, 0x00, 0x00, 0x22, 0xD1, 0x6E, 0x00, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x6E, 0x00, + 0x45, 0x03, 0x00, 0x00, 0x02, 0x24, 0x6E, 0x00, + 0x3C, 0x16, 0x00, 0x00, 0x26, 0x77, 0x6E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +// TODO: fileoffset = 0x2C55E, len = 120 * 8 +extern const byte LoKAmigaSfxGame[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x13, 0x00, 0x00, 0x01, 0x56, 0x78, 0x02, + 0x3C, 0x14, 0x00, 0x00, 0x27, 0x2C, 0x78, 0x02, + 0x3C, 0x15, 0x00, 0x00, 0x1B, 0x91, 0x78, 0x02, + 0x3C, 0x16, 0x00, 0x00, 0x1E, 0x97, 0x78, 0x02, + 0x3C, 0x17, 0x00, 0x00, 0x12, 0x2B, 0x78, 0x02, + 0x3C, 0x16, 0x00, 0x00, 0x1E, 0x97, 0x78, 0x02, + 0x45, 0x03, 0x00, 0x00, 0x02, 0x24, 0x78, 0x02, + 0x3C, 0x16, 0x00, 0x00, 0x1E, 0x97, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 0x02, + 0x2C, 0x04, 0x00, 0x00, 0x09, 0x10, 0x78, 0x02, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 0x02, + 0x3C, 0x1A, 0x00, 0x00, 0x3A, 0xEB, 0x78, 0x02, + 0x25, 0x1B, 0x00, 0x00, 0x13, 0x8B, 0x78, 0x02, + 0x18, 0x03, 0x00, 0x00, 0x0F, 0x52, 0x78, 0x02, + 0x3E, 0x1C, 0x00, 0x00, 0x06, 0x22, 0x78, 0x02, + 0x3B, 0x1C, 0x00, 0x00, 0x07, 0x54, 0x78, 0x02, + 0x16, 0x03, 0x00, 0x00, 0x20, 0x6F, 0x78, 0x02, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 0x02, + 0x3C, 0x1D, 0x00, 0x00, 0x09, 0xEA, 0x78, 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, + 0x3C, 0x14, 0x00, 0x00, 0x27, 0x2C, 0x78, 0x02, + 0x3C, 0x1E, 0x00, 0x00, 0x03, 0x6E, 0x78, 0x02, + 0x3C, 0x17, 0x00, 0x00, 0x12, 0x2B, 0x78, 0x02, + 0x4E, 0x0B, 0x00, 0x00, 0x09, 0x91, 0x78, 0x02, + 0x47, 0x1B, 0x00, 0x00, 0x02, 0xBC, 0x78, 0x02, + 0x4C, 0x1B, 0x00, 0x00, 0x02, 0x11, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x13, 0x00, 0x00, 0x01, 0x56, 0x78, 0x02, + 0x3C, 0x13, 0x00, 0x00, 0x01, 0x56, 0x78, 0x02, + 0x3C, 0x1F, 0x00, 0x00, 0x0E, 0x9E, 0x78, 0x02, + 0x3C, 0x20, 0x00, 0x00, 0x01, 0x0C, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 0x02, + 0x3C, 0x21, 0x00, 0x00, 0x0F, 0x7C, 0x78, 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, + 0x2A, 0x0B, 0x00, 0x00, 0x4C, 0x47, 0x78, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x1B, 0x00, 0x00, 0x05, 0x28, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2C, 0x04, 0x00, 0x00, 0x09, 0x10, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x22, 0x00, 0x00, 0x0A, 0xEE, 0x78, 0x02, + 0x3C, 0x16, 0x00, 0x00, 0x1E, 0x97, 0x78, 0x02, + 0x3C, 0x15, 0x00, 0x00, 0x1B, 0x91, 0x78, 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, + 0x3C, 0x14, 0x00, 0x00, 0x27, 0x2C, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x22, 0x00, 0x00, 0x0A, 0xEE, 0x78, 0x02, + 0x3C, 0x14, 0x00, 0x00, 0x27, 0x2C, 0x78, 0x02, + 0x32, 0x23, 0x00, 0x00, 0x14, 0x19, 0x9C, 0x02, + 0x3C, 0x19, 0x00, 0x00, 0x17, 0x1C, 0x78, 0x02, + 0x3C, 0x14, 0x00, 0x00, 0x27, 0x2C, 0x78, 0x02, + 0x3E, 0x1C, 0x00, 0x00, 0x06, 0x22, 0x78, 0x02, + 0x43, 0x13, 0x00, 0x00, 0x02, 0x01, 0x78, 0x02, + 0x3C, 0x24, 0x00, 0x00, 0x12, 0x43, 0x5A, 0x02, + 0x3E, 0x20, 0x00, 0x00, 0x00, 0xEE, 0x78, 0x02, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 0x02, + 0x29, 0x04, 0x00, 0x00, 0x19, 0xEA, 0x78, 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, + 0x3C, 0x20, 0x00, 0x00, 0x01, 0x0C, 0x78, 0x02, + 0x3C, 0x25, 0x00, 0x00, 0x30, 0xB6, 0x78, 0x02, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x16, 0x00, 0x00, 0x1E, 0x97, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x1A, 0x00, 0x00, 0x3A, 0xEB, 0x78, 0x02, + 0x1B, 0x04, 0x00, 0x00, 0x39, 0xF3, 0x78, 0x02, + 0x30, 0x23, 0x00, 0x00, 0x16, 0x99, 0x50, 0x02, + 0x3C, 0x15, 0x00, 0x00, 0x1B, 0x91, 0x78, 0x02, + 0x29, 0x06, 0x00, 0x00, 0x19, 0xEA, 0x50, 0x02, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x1A, 0x00, 0x00, 0x3A, 0xEB, 0x78, 0x02, + 0x3C, 0x19, 0x00, 0x00, 0x25, 0x2C, 0x78, 0x02, + 0x3C, 0x26, 0x00, 0x00, 0x07, 0x13, 0x78, 0x02, + 0x3C, 0x26, 0x00, 0x00, 0x07, 0x13, 0x78, 0x02, + 0x3C, 0x14, 0x00, 0x00, 0x27, 0x2C, 0x78, 0x02, + 0x30, 0x23, 0x00, 0x00, 0x16, 0x99, 0x50, 0x02, + 0x30, 0x23, 0x00, 0x00, 0x16, 0x99, 0x50, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x13, 0x00, 0x00, 0x01, 0x56, 0x78, 0x02, +}; + } // End of namespace Kyra |