aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Lange2009-08-09 20:20:42 +0000
committerNorbert Lange2009-08-09 20:20:42 +0000
commitab529d8e0c4a7af2cbb0a3dbf131eb0c1d68254d (patch)
tree038bbeb2127b5802ca9f15709b439cb9705576c9
parentb4c689a3c1fbf74e6286c320cfcd820a72745f57 (diff)
downloadscummvm-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
-rw-r--r--engines/kyra/sound_amiga.cpp229
-rw-r--r--engines/kyra/sound_intern.h2
-rw-r--r--engines/kyra/staticres.cpp168
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