aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/queen/bankman.cpp198
-rw-r--r--engines/queen/bankman.h4
-rw-r--r--engines/queen/display.cpp695
-rw-r--r--engines/queen/display.h9
-rw-r--r--engines/queen/graphics.cpp83
-rw-r--r--engines/queen/journal.cpp14
-rw-r--r--engines/queen/logic.cpp3
-rw-r--r--engines/queen/music.cpp2
-rw-r--r--engines/queen/queen.cpp20
-rw-r--r--engines/queen/queen.h3
-rw-r--r--engines/queen/resource.cpp86
-rw-r--r--engines/queen/resource.h38
-rw-r--r--engines/queen/sound.cpp643
-rw-r--r--engines/queen/sound.h97
-rw-r--r--engines/queen/talk.cpp6
-rw-r--r--sound/mods/rjp1.cpp6
-rw-r--r--sound/mods/rjp1.h2
-rw-r--r--tools/qtable/fat_amiga_demo.h115
-rw-r--r--tools/qtable/fat_amiga_eng_floppy.h763
-rw-r--r--tools/qtable/fat_amiga_interview.h70
-rw-r--r--tools/qtable/qtable.c17
21 files changed, 2257 insertions, 617 deletions
diff --git a/engines/queen/bankman.cpp b/engines/queen/bankman.cpp
index 18ad276d0f..d9eb020dfe 100644
--- a/engines/queen/bankman.cpp
+++ b/engines/queen/bankman.cpp
@@ -31,7 +31,6 @@ BankManager::BankManager(Resource *res)
: _res(res) {
memset(_frames, 0, sizeof(_frames));
memset(_banks, 0, sizeof(_banks));
- memset(_loadedBanks, 0, sizeof(_loadedBanks));
}
BankManager::~BankManager() {
@@ -43,102 +42,189 @@ BankManager::~BankManager() {
void BankManager::load(const char *bankname, uint32 bankslot) {
debug(9, "BankManager::load(%s, %d)", bankname, bankslot);
+
assert(bankslot < MAX_BANKS_NUMBER);
+ PackedBank *bank = &_banks[bankslot];
- if (!scumm_stricmp(bankname, _loadedBanks[bankslot])) {
+ if (!scumm_stricmp(bankname, bank->name)) {
debug(9, "BankManager::load() bank '%s' already loaded", bankname);
return;
}
close(bankslot);
- _banks[bankslot].data = _res->loadFile(bankname);
-
- uint16 entries = READ_LE_UINT16(_banks[bankslot].data);
- assert(entries < MAX_BANK_SIZE);
- debug(9, "BankManager::load() entries = %d", entries);
-
- uint32 offset = 2;
- const uint8 *p = _banks[bankslot].data;
- for (uint16 i = 1; i <= entries; ++i) {
- _banks[bankslot].indexes[i] = offset;
- uint16 w = READ_LE_UINT16(p + offset + 0);
- uint16 h = READ_LE_UINT16(p + offset + 2);
- // jump to next entry, skipping data & header
- offset += w * h + 8;
+ bank->data = _res->loadFile(bankname);
+
+ if (_res->getPlatform() == Common::kPlatformAmiga) {
+ uint16 entries = READ_BE_UINT16(bank->data + 4);
+ assert(entries < MAX_BANK_SIZE);
+ debug(9, "BankManager::load() entries = %d", entries);
+ uint32 offset = 6;
+ for (uint16 i = 1; i <= entries; ++i) {
+ _banks[bankslot].indexes[i] = offset;
+ uint16 dataSize = READ_BE_UINT16(bank->data + offset + 10);
+ offset += dataSize + 12;
+ }
+ } else {
+ uint16 entries = READ_LE_UINT16(bank->data);
+ assert(entries < MAX_BANK_SIZE);
+ debug(9, "BankManager::load() entries = %d", entries);
+ uint32 offset = 2;
+ for (uint16 i = 1; i <= entries; ++i) {
+ _banks[bankslot].indexes[i] = offset;
+ uint16 w = READ_LE_UINT16(bank->data + offset + 0);
+ uint16 h = READ_LE_UINT16(bank->data + offset + 2);
+ offset += w * h + 8;
+ }
}
// mark this bank as loaded
- strcpy(_loadedBanks[bankslot], bankname);
+ strcpy(bank->name, bankname);
+}
+
+static void convertPlanarBitmap(uint8 *dst, int dstPitch, const uint8 *src, int w, int h, int plane) {
+ assert(w != 0 && h != 0);
+ int planarSize = plane * h * w * 2;
+ uint8 *planarBuf = new uint8[ planarSize ];
+ uint8 *dstPlanar = planarBuf;
+ while (planarSize > 0) {
+ if (src[0] == 0) {
+ int count = src[1];
+ memset(dstPlanar, 0, count);
+ dstPlanar += count;
+ src += 2;
+ planarSize -= count;
+ } else {
+ *dstPlanar++ = *src++;
+ --planarSize;
+ }
+ }
+
+ src = planarBuf;
+ int i = 0;
+ int planeSize = h * w * 2;
+ while (h--) {
+ for (int x = 0; x < w * 2; ++x) {
+ for (int b = 0; b < 8; ++b) {
+ const uint8 mask = (1 << (7 - b));
+ uint8 color = 0;
+ for (int p = 0; p < plane; ++p) {
+ if (src[planeSize * p + i] & mask) {
+ color |= (1 << p);
+ }
+ }
+ dst[8 * x + b] = color;
+ }
+ ++i;
+ }
+ dst += dstPitch;
+ }
+
+ delete[] planarBuf;
}
void BankManager::unpack(uint32 srcframe, uint32 dstframe, uint32 bankslot) {
debug(9, "BankManager::unpack(%d, %d, %d)", srcframe, dstframe, bankslot);
+
assert(bankslot < MAX_BANKS_NUMBER);
- assert(_banks[bankslot].data != NULL);
-
- BobFrame *pbf = &_frames[dstframe];
- const uint8 *p = _banks[bankslot].data + _banks[bankslot].indexes[srcframe];
- pbf->width = READ_LE_UINT16(p + 0);
- pbf->height = READ_LE_UINT16(p + 2);
- pbf->xhotspot = READ_LE_UINT16(p + 4);
- pbf->yhotspot = READ_LE_UINT16(p + 6);
-
- uint32 size = pbf->width * pbf->height;
- delete[] pbf->data;
- pbf->data = new uint8[ size ];
- memcpy(pbf->data, p + 8, size);
+ PackedBank *bank = &_banks[bankslot];
+ assert(bank->data != NULL);
+
+ assert(dstframe < MAX_FRAMES_NUMBER);
+ BobFrame *bf = &_frames[dstframe];
+ delete[] bf->data;
+ bf->data = NULL;
+
+ const uint8 *p = bank->data + bank->indexes[srcframe];
+
+ if (_res->getPlatform() == Common::kPlatformAmiga) {
+ uint16 w = READ_BE_UINT16(p + 0);
+ uint16 h = READ_BE_UINT16(p + 2);
+ uint16 plane = READ_BE_UINT16(p + 4);
+ bf->xhotspot = READ_BE_UINT16(p + 6);
+ bf->yhotspot = READ_BE_UINT16(p + 8);
+ bf->width = w * 16;
+ bf->height = h;
+
+ uint32 size = bf->width * bf->height;
+ bf->data = new uint8[ size ];
+ convertPlanarBitmap(bf->data, bf->width, p + 12, w, h, plane);
+ } else {
+ bf->width = READ_LE_UINT16(p + 0);
+ bf->height = READ_LE_UINT16(p + 2);
+ bf->xhotspot = READ_LE_UINT16(p + 4);
+ bf->yhotspot = READ_LE_UINT16(p + 6);
+
+ uint32 size = bf->width * bf->height;
+ bf->data = new uint8[ size ];
+ memcpy(bf->data, p + 8, size);
+ }
}
void BankManager::overpack(uint32 srcframe, uint32 dstframe, uint32 bankslot) {
debug(9, "BankManager::overpack(%d, %d, %d)", srcframe, dstframe, bankslot);
- assert(bankslot < MAX_BANKS_NUMBER);
- assert(_banks[bankslot].data != NULL);
- const uint8 *p = _banks[bankslot].data + _banks[bankslot].indexes[srcframe];
- uint16 src_w = READ_LE_UINT16(p + 0);
- uint16 src_h = READ_LE_UINT16(p + 2);
-
- // unpack if destination frame is smaller than source one
- if (_frames[dstframe].width < src_w || _frames[dstframe].height < src_h) {
- unpack(srcframe, dstframe, bankslot);
+ assert(bankslot < MAX_BANKS_NUMBER);
+ PackedBank *bank = &_banks[bankslot];
+ assert(bank->data != NULL);
+
+ assert(dstframe < MAX_FRAMES_NUMBER);
+ BobFrame *bf = &_frames[dstframe];
+
+ const uint8 *p = bank->data + bank->indexes[srcframe];
+
+ if (_res->getPlatform() == Common::kPlatformAmiga) {
+ uint16 w = READ_BE_UINT16(p + 0);
+ uint16 h = READ_BE_UINT16(p + 2);
+ uint16 plane = READ_BE_UINT16(p + 4);
+ uint16 src_w = w * 16;
+ uint16 src_h = h;
+
+ if (bf->width < src_w || bf->height < src_h) {
+ unpack(srcframe, dstframe, bankslot);
+ } else {
+ convertPlanarBitmap(bf->data, bf->width, p + 12, w, h, plane);
+ }
} else {
- // copy data 'over' destination frame (without changing frame header)
- memcpy(_frames[dstframe].data, p + 8, src_w * src_h);
+ uint16 src_w = READ_LE_UINT16(p + 0);
+ uint16 src_h = READ_LE_UINT16(p + 2);
+
+ // unpack if destination frame is smaller than source
+ if (bf->width < src_w || bf->height < src_h) {
+ unpack(srcframe, dstframe, bankslot);
+ } else {
+ // copy data 'over' destination frame (without updating frame header)
+ memcpy(bf->data, p + 8, src_w * src_h);
+ }
}
}
void BankManager::close(uint32 bankslot) {
debug(9, "BankManager::close(%d)", bankslot);
assert(bankslot < MAX_BANKS_NUMBER);
- delete[] _banks[bankslot].data;
- memset(&_banks[bankslot], 0, sizeof(PackedBank));
- _loadedBanks[bankslot][0] = '\0';
+ PackedBank *bank = &_banks[bankslot];
+ delete[] bank->data;
+ memset(bank, 0, sizeof(PackedBank));
}
BobFrame *BankManager::fetchFrame(uint32 index) {
debug(9, "BankManager::fetchFrame(%d)", index);
assert(index < MAX_FRAMES_NUMBER);
- BobFrame *pbf = &_frames[index];
- assert(pbf->data != 0);
- return pbf;
+ BobFrame *bf = &_frames[index];
+ assert(bf->data != 0);
+ return bf;
}
void BankManager::eraseFrame(uint32 index) {
debug(9, "BankManager::eraseFrame(%d)", index);
assert(index < MAX_FRAMES_NUMBER);
- BobFrame *pbf = &_frames[index];
- delete[] pbf->data;
- memset(pbf, 0, sizeof(BobFrame));
+ BobFrame *bf = &_frames[index];
+ delete[] bf->data;
+ memset(bf, 0, sizeof(BobFrame));
}
void BankManager::eraseFrames(bool joe) {
- uint32 i = 0;
- if (!joe) {
- i = FRAMES_JOE;
- }
- while (i < MAX_FRAMES_NUMBER) {
+ for (uint32 i = joe ? 0 : FRAMES_JOE; i < MAX_FRAMES_NUMBER; ++i) {
eraseFrame(i);
- ++i;
}
}
diff --git a/engines/queen/bankman.h b/engines/queen/bankman.h
index a386706950..bdc9847d31 100644
--- a/engines/queen/bankman.h
+++ b/engines/queen/bankman.h
@@ -68,6 +68,7 @@ private:
struct PackedBank {
uint32 indexes[MAX_BANK_SIZE];
uint8 *data;
+ char name[20];
};
//! unpacked bob frames
@@ -76,9 +77,6 @@ private:
//! banked bob frames
PackedBank _banks[MAX_BANKS_NUMBER];
- //! loaded banks names
- char _loadedBanks[MAX_BANKS_NUMBER][20];
-
Resource *_res;
};
diff --git a/engines/queen/display.cpp b/engines/queen/display.cpp
index 7f5e26102d..ef059bb8af 100644
--- a/engines/queen/display.cpp
+++ b/engines/queen/display.cpp
@@ -45,18 +45,11 @@ Display::Display(QueenEngine *vm, OSystem *system)
: _fullscreen(true), _horizontalScroll(0), _bdWidth(0), _bdHeight(0),
_system(system), _vm(vm) {
- if (vm->resource()->getLanguage() == Common::HB_ISR)
- _font = _fontHebrew;
- else if (vm->resource()->getLanguage() == Common::RU_RUS)
- _font = _fontRussian;
- else
- _font = _fontRegular;
-
initFont();
- _screenBuf = new uint8[SCREEN_W * SCREEN_H];
- _panelBuf = new uint8[PANEL_W * PANEL_H];
- _backdropBuf = new uint8[BACKDROP_W * BACKDROP_H];
+ _screenBuf = new uint8[ SCREEN_W * SCREEN_H ];
+ _panelBuf = new uint8[ PANEL_W * PANEL_H ];
+ _backdropBuf = new uint8[ BACKDROP_W * BACKDROP_H ];
memset(_screenBuf, 0, SCREEN_W * SCREEN_H);
memset(_panelBuf, 0, PANEL_W * PANEL_H);
memset(_backdropBuf, 0, BACKDROP_W * BACKDROP_H);
@@ -77,6 +70,11 @@ Display::Display(QueenEngine *vm, OSystem *system)
_pal.dirtyMax = 255;
_pal.scrollable = true;
+ _imageExt = (_vm->resource()->getPlatform() == Common::kPlatformAmiga) ? "LBM" : "PCX";
+
+ _curTextColor = 0;
+ memset(_texts, 0, sizeof(_texts));
+
memset(&_dynalum, 0, sizeof(_dynalum));
}
@@ -106,10 +104,10 @@ void Display::dynalumInit(const char *roomName, uint16 roomNum) {
if (!isPalFadingDisabled(roomNum)) {
char filename[20];
- sprintf(filename, "%s.msk", roomName);
+ sprintf(filename, "%s.MSK", roomName);
if (_vm->resource()->fileExists(filename)) {
_dynalum.mskBuf = (uint8 *)_vm->resource()->loadFile(filename, 0, &_dynalum.mskSize);
- sprintf(filename, "%s.lum", roomName);
+ sprintf(filename, "%s.LUM", roomName);
if (_vm->resource()->fileExists(filename)) {
_dynalum.lumBuf = (int8 *)_vm->resource()->loadFile(filename, 0, &_dynalum.lumSize);
_dynalum.valid = true;
@@ -628,35 +626,44 @@ void Display::update(bool dynalum, int16 dynaX, int16 dynaY) {
}
void Display::setupPanel() {
- uint32 size;
- uint8 *pcxBuf = _vm->resource()->loadFile("panel.pcx", 0, &size);
- uint8 *dst = _panelBuf + PANEL_W * 10;
- readPCX(dst, PANEL_W, pcxBuf + 128, PANEL_W, PANEL_H - 10);
- const uint8 *pal = pcxBuf + size - 768 + 144 * 3;
- memcpy(_pal.panel, pal, (256 - 144) * 3);
- delete[] pcxBuf;
+ uint16 panelWidth, panelHeight;
+ uint32 dataSize;
+ char dataName[20];
+ sprintf(dataName, "PANEL.%s", _imageExt);
+ uint8 *data = _vm->resource()->loadFile(dataName, 0, &dataSize);
+
+ if (_vm->resource()->getPlatform() == Common::kPlatformAmiga) {
+ decodeLBM(data, dataSize, _panelBuf, PANEL_W, &panelWidth, &panelHeight, _pal.panel, 0, 32, 144);
+ } else {
+ WRITE_LE_UINT16(data + 14, PANEL_H - 10);
+ decodePCX(data, dataSize, _panelBuf + PANEL_W * 10, PANEL_W, &panelWidth, &panelHeight, _pal.panel, 144, 256);
+ }
palSetPanel();
+
+ delete[] data;
}
void Display::setupNewRoom(const char *name, uint16 room) {
dynalumInit(name, room);
- uint32 size;
- char filename[20];
- sprintf(filename, "%s.PCX", name);
- uint8 *pcxBuf = _vm->resource()->loadFile(filename, 0, &size);
- _bdWidth = READ_LE_UINT16(pcxBuf + 12);
- _bdHeight = READ_LE_UINT16(pcxBuf + 14);
- readPCX(_backdropBuf, BACKDROP_W, pcxBuf + 128, _bdWidth, _bdHeight);
- int n = getNumColorsForRoom(room);
- if (n != 256) {
- n = 144;
- }
- memcpy(_pal.room, pcxBuf + size - 768, n * 3);
- delete[] pcxBuf;
- palCustomColors(room);
+ uint32 dataSize;
+ char dataName[20];
+ sprintf(dataName, "%s.%s", name, _imageExt);
+ uint8 *data = _vm->resource()->loadFile(dataName, 0, &dataSize);
+ if (_vm->resource()->getPlatform() == Common::kPlatformAmiga) {
+ decodeLBM(data, dataSize, _backdropBuf, BACKDROP_W, &_bdWidth, &_bdHeight, _pal.room, 0, 32);
+ } else {
+ int n = getNumColorsForRoom(room);
+ if (n != 256) {
+ n = 144;
+ }
+ decodePCX(data, dataSize, _backdropBuf, BACKDROP_W, &_bdWidth, &_bdHeight, _pal.room, 0, n);
+ palCustomColors(room);
+ }
+
+ delete[] data;
forceFullRefresh();
}
@@ -670,10 +677,24 @@ void Display::drawBobPasteDown(const uint8 *data, uint16 x, uint16 y, uint16 w,
}
void Display::drawInventoryItem(const uint8 *data, uint16 x, uint16 y, uint16 w, uint16 h) {
- if (data != NULL) {
- blit(_panelBuf, PANEL_W, x, y, data, w, w, h, false, false);
+ if (_vm->resource()->getPlatform() == Common::kPlatformAmiga) {
+ if (data != NULL) {
+ uint8 *dst = _panelBuf + y * PANEL_W + x;
+ while (h--) {
+ for (int i = 0; i < w; ++i) {
+ dst[i] = 144 + *data++;
+ }
+ dst += PANEL_W;
+ }
+ } else {
+ fill(_panelBuf, PANEL_W, x, y, w, h, 144 + 2);
+ }
} else {
- fill(_panelBuf, PANEL_W, x, y, w, h, INK_BG_PANEL);
+ if (data != NULL) {
+ blit(_panelBuf, PANEL_W, x, y, data, w, w, h, false, false);
+ } else {
+ fill(_panelBuf, PANEL_W, x, y, w, h, INK_BG_PANEL);
+ }
}
setDirtyBlock(x, 150 + y, w, h);
}
@@ -722,10 +743,18 @@ void Display::fill(uint8 *dstBuf, uint16 dstPitch, uint16 x, uint16 y, uint16 w,
}
}
-void Display::readPCX(uint8 *dst, uint16 dstPitch, const uint8 *src, uint16 w, uint16 h) {
- while (h--) {
+void Display::decodePCX(const uint8 *src, uint32 srcSize, uint8 *dst, uint16 dstPitch, uint16 *w, uint16 *h, uint8 *pal, uint16 palStart, uint16 palEnd) {
+ *w = READ_LE_UINT16(src + 12);
+ *h = READ_LE_UINT16(src + 14);
+
+ assert(palStart <= palEnd && palEnd <= 256);
+ const uint8 *palData = src + srcSize - 768;
+ memcpy(pal, palData + palStart * 3, (palEnd - palStart) * 3);
+
+ src += 128;
+ for (int y = 0; y < *h; ++y) {
uint8 *p = dst;
- while (p < dst + w) {
+ while (p < dst + *w) {
uint8 col = *src++;
if ((col & 0xC0) == 0xC0) {
uint8 len = col & 0x3F;
@@ -739,6 +768,75 @@ void Display::readPCX(uint8 *dst, uint16 dstPitch, const uint8 *src, uint16 w, u
}
}
+void Display::decodeLBM(const uint8 *src, uint32 srcSize, uint8 *dst, uint16 dstPitch, uint16 *w, uint16 *h, uint8 *pal, uint16 palStart, uint16 palEnd, uint8 colorBase) {
+ int planeCount, planePitch;
+ const uint8 *srcEnd = src + srcSize;
+ src += 12;
+ while (src < srcEnd) {
+ uint32 type = READ_BE_UINT32(src);
+ uint32 size = READ_BE_UINT32(src + 4);
+ src += 8;
+ switch (type) {
+ case MKID_BE('BMHD'): {
+ *w = READ_BE_UINT16(src + 0);
+ *h = READ_BE_UINT16(src + 2);
+ planeCount = src[8];
+ planePitch = ((*w + 15) >> 4) * 2;
+ }
+ break;
+ case MKID_BE('CMAP'): {
+ assert(palStart <= palEnd && palEnd <= size / 3);
+ memcpy(pal, src + palStart * 3, (palEnd - palStart) * 3);
+ }
+ break;
+ case MKID_BE('BODY'): {
+ uint32 planarSize = (*h) * planeCount * planePitch;
+ uint8 *planarBuf = new uint8[planarSize];
+ uint8 *dstPlanar = planarBuf;
+ for (int y = 0; y < *h; ++y) {
+ for (int p = 0; p < planeCount; ++p) {
+ const uint8 *end = dstPlanar + planePitch;
+ while (dstPlanar < end) {
+ int code = (int8)*src++;
+ if (code != -128) {
+ if (code < 0) {
+ code = -code + 1;
+ memset(dstPlanar, *src++, code);
+ } else {
+ ++code;
+ memcpy(dstPlanar, src, code);
+ src += code;
+ }
+ dstPlanar += code;
+ }
+ }
+ }
+ }
+ src = planarBuf;
+ for (int y = 0; y < *h; ++y) {
+ for (int x = 0; x < *w / 8; ++x) {
+ for (int b = 0; b < 8; ++b) {
+ const uint8 mask = (1 << (7 - b));
+ uint8 color = 0;
+ for (int p = 0; p < planeCount; ++p) {
+ if (src[planePitch * p + x] & mask) {
+ color |= 1 << p;
+ }
+ }
+ dst[x * 8 + b] = colorBase + color;
+ }
+ }
+ src += planeCount * planePitch;
+ dst += dstPitch;
+ }
+ delete[] planarBuf;
+ }
+ return;
+ }
+ src += size;
+ }
+}
+
void Display::horizontalScrollUpdate(int16 xCamera) {
debug(9, "Display::horizontalScrollUpdate(%d)", xCamera);
if (_bdWidth <= 320) {
@@ -790,6 +888,17 @@ void Display::showMouseCursor(bool show) {
}
void Display::initFont() {
+ switch (_vm->resource()->getLanguage()) {
+ case Common::HB_ISR:
+ _font = _fontHebrew;
+ break;
+ case Common::RU_RUS:
+ _font = _fontRussian;
+ break;
+ default:
+ _font = _fontRegular;
+ break;
+ }
// calculate font justification sizes
for (int i = 0; i < 256; ++i) {
_charWidth[i] = 0;
@@ -1017,264 +1126,264 @@ void Display::blankScreenEffect3() {
#ifndef PALMOS_68K
const uint8 Display::_fontRegular[] = {
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00,
- 0xD8, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
- 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, 0x00, 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
- 0x38, 0x6C, 0x68, 0x36, 0xDC, 0xCC, 0x76, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x30, 0x60, 0xC0, 0xC0, 0xC0, 0x60, 0x30, 0x00, 0xC0, 0x60, 0x30, 0x30, 0x30, 0x60, 0xC0, 0x00,
- 0x00, 0x6C, 0x38, 0xFE, 0x38, 0x6C, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x00,
- 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x30, 0x70, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x00,
- 0x78, 0xCC, 0x0C, 0x78, 0xC0, 0xC0, 0xFC, 0x00, 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
- 0x1C, 0x3C, 0x6C, 0xCC, 0xFC, 0x0C, 0x0C, 0x00, 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
- 0x78, 0xCC, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
- 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00,
- 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0xC0,
- 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00,
- 0xC0, 0x60, 0x30, 0x18, 0x30, 0x60, 0xC0, 0x00, 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, 0x00,
- 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x38, 0x7C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0xF8, 0xCC, 0xCC, 0xF8, 0xCC, 0xCC, 0xF8, 0x00, 0x78, 0xCC, 0xC0, 0xC0, 0xC0, 0xCC, 0x78, 0x00,
- 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xFC, 0x00,
- 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xC0, 0xDC, 0xCC, 0xCC, 0x7C, 0x00,
- 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00,
- 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 0xC6, 0xCC, 0xD8, 0xF8, 0xD8, 0xCC, 0xC6, 0x00,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0x00, 0x82, 0xC6, 0xEE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
- 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
- 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0x78, 0x0C,
- 0xF8, 0xCC, 0xCC, 0xF8, 0xD8, 0xCC, 0xCC, 0x00, 0x78, 0xCC, 0xC0, 0x78, 0x0C, 0xCC, 0x78, 0x00,
- 0xFC, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
- 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, 0x10, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00,
- 0xC6, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x00,
- 0xFC, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xFC, 0x00, 0xF0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0x00,
- 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x00,
- 0xE8, 0x4D, 0x4A, 0x48, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0xC0, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00,
- 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
- 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x7C, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
- 0x38, 0x6C, 0x60, 0xF8, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x78,
- 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
- 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0x78, 0xC0, 0xC0, 0xCC, 0xD8, 0xF0, 0xD8, 0xCC, 0x00,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xCC, 0xEE, 0xD6, 0xC6, 0xC6, 0x00,
- 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
- 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C,
- 0x00, 0x00, 0xF8, 0xCC, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x7C, 0xC0, 0x78, 0x0C, 0x78, 0x00,
- 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
- 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0x6C, 0x6C, 0x00,
- 0x00, 0x00, 0xCC, 0x78, 0x30, 0x78, 0xCC, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0xE0,
- 0x00, 0x00, 0xFC, 0x18, 0x30, 0x60, 0xFC, 0x00, 0x38, 0x60, 0x60, 0xC0, 0x60, 0x60, 0x38, 0x00,
- 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0xE0, 0x30, 0x30, 0x18, 0x30, 0x30, 0xE0, 0x00,
- 0x38, 0x44, 0xBA, 0xAA, 0xBA, 0x44, 0x38, 0x00, 0x00, 0x98, 0x30, 0x60, 0xC8, 0x98, 0x30, 0x00,
- 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18, 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x0C, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x18, 0x66, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18,
- 0x18, 0x66, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x66, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
- 0x30, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x00, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x18, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x18, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
- 0x00, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x30, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
- 0x18, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x18, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x18, 0x30, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, 0x18, 0x30, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
- 0x71, 0x8E, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x00, 0x71, 0xCE, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00,
- 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, 0x3C, 0x60, 0x3C, 0x66, 0x3C, 0x06, 0x3C, 0x00,
- 0x18, 0x00, 0x18, 0x30, 0x60, 0x66, 0x3C, 0x00, 0x3F, 0x40, 0x4E, 0x58, 0x4E, 0x40, 0x3F, 0x00,
- 0x1C, 0xA4, 0xC4, 0xBC, 0x80, 0xFE, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
- 0x3E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
- 0x81, 0xB9, 0xA5, 0xB9, 0xA5, 0x81, 0x7E, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x78, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0xFC, 0x00,
- 0xF0, 0x18, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, 0xF0, 0x18, 0x30, 0x18, 0xF0, 0x00, 0x00, 0x00,
- 0x30, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xFE, 0xC0,
- 0x3E, 0x7A, 0x7A, 0x3A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0x60, 0xE0, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x38, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
- 0x40, 0xC6, 0x4C, 0x58, 0x32, 0x66, 0xCF, 0x02, 0x40, 0xC6, 0x4C, 0x58, 0x3E, 0x62, 0xC4, 0x0E,
- 0xC0, 0x23, 0x66, 0x2C, 0xD9, 0x33, 0x67, 0x01, 0x18, 0x00, 0x18, 0x30, 0x60, 0x66, 0x3C, 0x00,
- 0x60, 0x30, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x0C, 0x18, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0x38, 0xC6, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x71, 0x8E, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0x6C, 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x38, 0x44, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0x1F, 0x3C, 0x3C, 0x6F, 0x7C, 0xCC, 0xCF, 0x00, 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18,
- 0x60, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0x18, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
- 0x30, 0xCC, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0xCC, 0x00, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
- 0x60, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0x18, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
- 0x30, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0xCC, 0x00, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
- 0x78, 0x6C, 0x66, 0xF6, 0x66, 0x6C, 0x78, 0x00, 0x71, 0xCE, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00,
- 0x30, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
- 0x18, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
- 0xC3, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, 0x00,
- 0x3F, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0xFC, 0x00, 0x30, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x0C, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x06, 0x08, 0xC3, 0x66, 0x3C, 0x18, 0x18, 0x00,
- 0x60, 0x60, 0x7E, 0x63, 0x7E, 0x60, 0x60, 0x00, 0x3C, 0x66, 0x66, 0x6C, 0x66, 0x66, 0x6C, 0x60,
- 0x30, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x18, 0x66, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x71, 0x8E, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x66, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x00, 0x00, 0x7E, 0x1B, 0x7F, 0xD8, 0x77, 0x00, 0x00, 0x00, 0x3C, 0x60, 0x60, 0x60, 0x3C, 0x18,
- 0x30, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
- 0x18, 0x66, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x66, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
- 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x18, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x60, 0xFC, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x00,
- 0x30, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
- 0x18, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
- 0x00, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x00, 0x00,
- 0x00, 0x02, 0x7C, 0xCE, 0xD6, 0xE6, 0x7C, 0x80, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x30,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00,
+ 0xD8, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
+ 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, 0x00, 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
+ 0x38, 0x6C, 0x68, 0x36, 0xDC, 0xCC, 0x76, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x60, 0xC0, 0xC0, 0xC0, 0x60, 0x30, 0x00, 0xC0, 0x60, 0x30, 0x30, 0x30, 0x60, 0xC0, 0x00,
+ 0x00, 0x6C, 0x38, 0xFE, 0x38, 0x6C, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x00,
+ 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x30, 0x70, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x00,
+ 0x78, 0xCC, 0x0C, 0x78, 0xC0, 0xC0, 0xFC, 0x00, 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
+ 0x1C, 0x3C, 0x6C, 0xCC, 0xFC, 0x0C, 0x0C, 0x00, 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
+ 0x78, 0xCC, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
+ 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00,
+ 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0xC0,
+ 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00,
+ 0xC0, 0x60, 0x30, 0x18, 0x30, 0x60, 0xC0, 0x00, 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, 0x00,
+ 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x38, 0x7C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0xF8, 0xCC, 0xCC, 0xF8, 0xCC, 0xCC, 0xF8, 0x00, 0x78, 0xCC, 0xC0, 0xC0, 0xC0, 0xCC, 0x78, 0x00,
+ 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xFC, 0x00,
+ 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xC0, 0xDC, 0xCC, 0xCC, 0x7C, 0x00,
+ 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00,
+ 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 0xC6, 0xCC, 0xD8, 0xF8, 0xD8, 0xCC, 0xC6, 0x00,
+ 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0x00, 0x82, 0xC6, 0xEE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
+ 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
+ 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0x78, 0x0C,
+ 0xF8, 0xCC, 0xCC, 0xF8, 0xD8, 0xCC, 0xCC, 0x00, 0x78, 0xCC, 0xC0, 0x78, 0x0C, 0xCC, 0x78, 0x00,
+ 0xFC, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
+ 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, 0x10, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00,
+ 0xC6, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x00,
+ 0xFC, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xFC, 0x00, 0xF0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0x00,
+ 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x00,
+ 0xE8, 0x4D, 0x4A, 0x48, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00,
+ 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
+ 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x7C, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
+ 0x38, 0x6C, 0x60, 0xF8, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x78,
+ 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
+ 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0x78, 0xC0, 0xC0, 0xCC, 0xD8, 0xF0, 0xD8, 0xCC, 0x00,
+ 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xCC, 0xEE, 0xD6, 0xC6, 0xC6, 0x00,
+ 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
+ 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C,
+ 0x00, 0x00, 0xF8, 0xCC, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x7C, 0xC0, 0x78, 0x0C, 0x78, 0x00,
+ 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
+ 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0x6C, 0x6C, 0x00,
+ 0x00, 0x00, 0xCC, 0x78, 0x30, 0x78, 0xCC, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0xE0,
+ 0x00, 0x00, 0xFC, 0x18, 0x30, 0x60, 0xFC, 0x00, 0x38, 0x60, 0x60, 0xC0, 0x60, 0x60, 0x38, 0x00,
+ 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0xE0, 0x30, 0x30, 0x18, 0x30, 0x30, 0xE0, 0x00,
+ 0x38, 0x44, 0xBA, 0xAA, 0xBA, 0x44, 0x38, 0x00, 0x00, 0x98, 0x30, 0x60, 0xC8, 0x98, 0x30, 0x00,
+ 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18, 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x0C, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x18, 0x66, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18,
+ 0x18, 0x66, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x66, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
+ 0x30, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x00, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x18, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x18, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
+ 0x00, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x30, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
+ 0x18, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x18, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x18, 0x30, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, 0x18, 0x30, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
+ 0x71, 0x8E, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x00, 0x71, 0xCE, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00,
+ 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, 0x3C, 0x60, 0x3C, 0x66, 0x3C, 0x06, 0x3C, 0x00,
+ 0x18, 0x00, 0x18, 0x30, 0x60, 0x66, 0x3C, 0x00, 0x3F, 0x40, 0x4E, 0x58, 0x4E, 0x40, 0x3F, 0x00,
+ 0x1C, 0xA4, 0xC4, 0xBC, 0x80, 0xFE, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
+ 0x3E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
+ 0x81, 0xB9, 0xA5, 0xB9, 0xA5, 0x81, 0x7E, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x78, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0xFC, 0x00,
+ 0xF0, 0x18, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, 0xF0, 0x18, 0x30, 0x18, 0xF0, 0x00, 0x00, 0x00,
+ 0x30, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xFE, 0xC0,
+ 0x3E, 0x7A, 0x7A, 0x3A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0x60, 0xE0, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
+ 0x38, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
+ 0x40, 0xC6, 0x4C, 0x58, 0x32, 0x66, 0xCF, 0x02, 0x40, 0xC6, 0x4C, 0x58, 0x3E, 0x62, 0xC4, 0x0E,
+ 0xC0, 0x23, 0x66, 0x2C, 0xD9, 0x33, 0x67, 0x01, 0x18, 0x00, 0x18, 0x30, 0x60, 0x66, 0x3C, 0x00,
+ 0x60, 0x30, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x0C, 0x18, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0x38, 0xC6, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x71, 0x8E, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0x6C, 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x38, 0x44, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0x1F, 0x3C, 0x3C, 0x6F, 0x7C, 0xCC, 0xCF, 0x00, 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18,
+ 0x60, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0x18, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
+ 0x30, 0xCC, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0xCC, 0x00, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
+ 0x60, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0x18, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
+ 0x30, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0xCC, 0x00, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
+ 0x78, 0x6C, 0x66, 0xF6, 0x66, 0x6C, 0x78, 0x00, 0x71, 0xCE, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00,
+ 0x30, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
+ 0x18, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
+ 0xC3, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, 0x00,
+ 0x3F, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0xFC, 0x00, 0x30, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x0C, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x06, 0x08, 0xC3, 0x66, 0x3C, 0x18, 0x18, 0x00,
+ 0x60, 0x60, 0x7E, 0x63, 0x7E, 0x60, 0x60, 0x00, 0x3C, 0x66, 0x66, 0x6C, 0x66, 0x66, 0x6C, 0x60,
+ 0x30, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x18, 0x66, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x71, 0x8E, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x66, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x00, 0x00, 0x7E, 0x1B, 0x7F, 0xD8, 0x77, 0x00, 0x00, 0x00, 0x3C, 0x60, 0x60, 0x60, 0x3C, 0x18,
+ 0x30, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
+ 0x18, 0x66, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x66, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
+ 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x18, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x60, 0xFC, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x00,
+ 0x30, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
+ 0x18, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
+ 0x00, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x00, 0x00,
+ 0x00, 0x02, 0x7C, 0xCE, 0xD6, 0xE6, 0x7C, 0x80, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x30,
0x60, 0x60, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x00, 0x66, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x30
};
const uint8 Display::_fontHebrew[] = {
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00,
- 0xD8, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
- 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, 0x00, 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
- 0x38, 0x6C, 0x68, 0x36, 0xDC, 0xCC, 0x76, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x30, 0x60, 0xC0, 0xC0, 0xC0, 0x60, 0x30, 0x00, 0xC0, 0x60, 0x30, 0x30, 0x30, 0x60, 0xC0, 0x00,
- 0x00, 0x6C, 0x38, 0xFE, 0x38, 0x6C, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x00,
- 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x30, 0x70, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x00,
- 0x78, 0xCC, 0x0C, 0x78, 0xC0, 0xC0, 0xFC, 0x00, 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
- 0x1C, 0x3C, 0x6C, 0xCC, 0xFC, 0x0C, 0x0C, 0x00, 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
- 0x78, 0xCC, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
- 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00,
- 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0xC0,
- 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00,
- 0xC0, 0x60, 0x30, 0x18, 0x30, 0x60, 0xC0, 0x00, 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, 0x00,
- 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x38, 0x7C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0xF8, 0xCC, 0xCC, 0xF8, 0xCC, 0xCC, 0xF8, 0x00, 0x78, 0xCC, 0xC0, 0xC0, 0xC0, 0xCC, 0x78, 0x00,
- 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xFC, 0x00,
- 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xC0, 0xDC, 0xCC, 0xCC, 0x7C, 0x00,
- 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00,
- 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 0xC6, 0xCC, 0xD8, 0xF8, 0xD8, 0xCC, 0xC6, 0x00,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0x00, 0x82, 0xC6, 0xEE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
- 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
- 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0x78, 0x0C,
- 0xF8, 0xCC, 0xCC, 0xF8, 0xD8, 0xCC, 0xCC, 0x00, 0x78, 0xCC, 0xC0, 0x78, 0x0C, 0xCC, 0x78, 0x00,
- 0xFC, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
- 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, 0x10, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00,
- 0xC6, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x00,
- 0xFC, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xFC, 0x00, 0xF0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0x00,
- 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x00,
- 0xE8, 0x4D, 0x4A, 0x48, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0xC0, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00,
- 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
- 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x7C, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
- 0x38, 0x6C, 0x60, 0xF8, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x78,
- 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
- 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0x78, 0xC0, 0xC0, 0xCC, 0xD8, 0xF0, 0xD8, 0xCC, 0x00,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xCC, 0xEE, 0xD6, 0xC6, 0xC6, 0x00,
- 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
- 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C,
- 0x00, 0x00, 0xF8, 0xCC, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x7C, 0xC0, 0x78, 0x0C, 0x78, 0x00,
- 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
- 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0x6C, 0x6C, 0x00,
- 0x00, 0x00, 0xCC, 0x78, 0x30, 0x78, 0xCC, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0xE0,
- 0x00, 0x00, 0xFC, 0x18, 0x30, 0x60, 0xFC, 0x00, 0x38, 0x60, 0x60, 0xC0, 0x60, 0x60, 0x38, 0x00,
- 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0xE0, 0x30, 0x30, 0x18, 0x30, 0x30, 0xE0, 0x00,
- 0x38, 0x44, 0xBA, 0xAA, 0xBA, 0x44, 0x38, 0x00, 0x00, 0x98, 0x30, 0x60, 0xC8, 0x98, 0x30, 0x00,
- 0xCC, 0x66, 0x76, 0xBC, 0x98, 0x8C, 0xE6, 0x00, 0xFC, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xFE, 0x00,
- 0x78, 0x18, 0x18, 0x18, 0x38, 0x78, 0xD8, 0x00, 0xFE, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0xFE, 0x06, 0x06, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x7C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00,
- 0xDC, 0x66, 0xE6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0xF0, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFE, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xF8, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xF8, 0x00,
- 0xC0, 0xFE, 0x06, 0x06, 0x0C, 0x18, 0x18, 0x00, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00,
- 0xFC, 0x76, 0x66, 0x66, 0x66, 0x66, 0x6E, 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00,
- 0xEE, 0x66, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0xFE, 0xC6, 0xC6, 0xF6, 0x06, 0x06, 0x06, 0x06,
- 0xFE, 0xC6, 0xC6, 0xFE, 0x06, 0x06, 0xFE, 0x00, 0xFE, 0x66, 0x6C, 0x78, 0x60, 0x60, 0x60, 0x60,
- 0xEE, 0x66, 0x3C, 0x18, 0x0C, 0x06, 0xFE, 0x00, 0xFE, 0x06, 0x0E, 0xD8, 0xF0, 0xF0, 0xC0, 0xC0,
- 0xFC, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0xEE, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0x7C, 0x00,
- 0xFF, 0x67, 0x67, 0x67, 0x67, 0x67, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x00, 0x0C, 0x3E, 0x6C, 0x3E, 0x0C, 0x00, 0x00, 0x38, 0x6C, 0x60, 0xF0, 0x60, 0x60, 0xFC, 0x00,
- 0x42, 0x3C, 0x66, 0x3C, 0x42, 0x00, 0x00, 0x00, 0xC3, 0x66, 0x3C, 0x18, 0x3C, 0x18, 0x18, 0x00,
- 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, 0x3C, 0x60, 0x3C, 0x66, 0x3C, 0x06, 0x3C, 0x00,
- 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x4E, 0x58, 0x4E, 0x40, 0x3F, 0x00,
- 0x1C, 0xA4, 0xC4, 0xBC, 0x80, 0xFE, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
- 0x3E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
- 0x81, 0xB9, 0xA5, 0xB9, 0xA5, 0x81, 0x7E, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x78, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0xFC, 0x00,
- 0xF0, 0x18, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, 0xF0, 0x18, 0x30, 0x18, 0xF0, 0x00, 0x00, 0x00,
- 0x30, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xFE, 0xC0,
- 0x3E, 0x7A, 0x7A, 0x3A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0x60, 0xE0, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x38, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
- 0x40, 0xC6, 0x4C, 0x58, 0x32, 0x66, 0xCF, 0x02, 0x40, 0xC6, 0x4C, 0x58, 0x3E, 0x62, 0xC4, 0x0E,
- 0xC0, 0x23, 0x66, 0x2C, 0xD9, 0x33, 0x67, 0x01, 0x18, 0x00, 0x18, 0x30, 0x60, 0x66, 0x3C, 0x00,
- 0x60, 0x30, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x0C, 0x18, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0x38, 0xC6, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x71, 0x8E, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0x6C, 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x38, 0x44, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
- 0x1F, 0x3C, 0x3C, 0x6F, 0x7C, 0xCC, 0xCF, 0x00, 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18,
- 0x60, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0x18, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
- 0x30, 0xCC, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0xCC, 0x00, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
- 0x60, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0x18, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
- 0x30, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0xCC, 0x00, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
- 0x78, 0x6C, 0x66, 0xF6, 0x66, 0x6C, 0x78, 0x00, 0x71, 0xCE, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00,
- 0x30, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
- 0x18, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
- 0xC3, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, 0x00,
- 0x3F, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0xFC, 0x00, 0x30, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x0C, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x06, 0x08, 0xC3, 0x66, 0x3C, 0x18, 0x18, 0x00,
- 0x60, 0x60, 0x7E, 0x63, 0x7E, 0x60, 0x60, 0x00, 0x3C, 0x66, 0x66, 0x6C, 0x66, 0x66, 0x6C, 0x60,
- 0x30, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x18, 0x66, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x71, 0x8E, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x66, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
- 0x00, 0x00, 0x7E, 0x1B, 0x7F, 0xD8, 0x77, 0x00, 0x00, 0x00, 0x3C, 0x60, 0x60, 0x60, 0x3C, 0x18,
- 0x30, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
- 0x18, 0x66, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x66, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
- 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x18, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
- 0x60, 0xFC, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x00,
- 0x30, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
- 0x18, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
- 0x00, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x00, 0x00,
- 0x00, 0x02, 0x7C, 0xCE, 0xD6, 0xE6, 0x7C, 0x80, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
- 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x30,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00,
+ 0xD8, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
+ 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, 0x00, 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
+ 0x38, 0x6C, 0x68, 0x36, 0xDC, 0xCC, 0x76, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x60, 0xC0, 0xC0, 0xC0, 0x60, 0x30, 0x00, 0xC0, 0x60, 0x30, 0x30, 0x30, 0x60, 0xC0, 0x00,
+ 0x00, 0x6C, 0x38, 0xFE, 0x38, 0x6C, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x00,
+ 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x30, 0x70, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x00,
+ 0x78, 0xCC, 0x0C, 0x78, 0xC0, 0xC0, 0xFC, 0x00, 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
+ 0x1C, 0x3C, 0x6C, 0xCC, 0xFC, 0x0C, 0x0C, 0x00, 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
+ 0x78, 0xCC, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
+ 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00,
+ 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0xC0,
+ 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00,
+ 0xC0, 0x60, 0x30, 0x18, 0x30, 0x60, 0xC0, 0x00, 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, 0x00,
+ 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x38, 0x7C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0xF8, 0xCC, 0xCC, 0xF8, 0xCC, 0xCC, 0xF8, 0x00, 0x78, 0xCC, 0xC0, 0xC0, 0xC0, 0xCC, 0x78, 0x00,
+ 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xFC, 0x00,
+ 0xFC, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xC0, 0xDC, 0xCC, 0xCC, 0x7C, 0x00,
+ 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00,
+ 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 0xC6, 0xCC, 0xD8, 0xF8, 0xD8, 0xCC, 0xC6, 0x00,
+ 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0x00, 0x82, 0xC6, 0xEE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
+ 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
+ 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0xC0, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0x78, 0x0C,
+ 0xF8, 0xCC, 0xCC, 0xF8, 0xD8, 0xCC, 0xCC, 0x00, 0x78, 0xCC, 0xC0, 0x78, 0x0C, 0xCC, 0x78, 0x00,
+ 0xFC, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
+ 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, 0x10, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00,
+ 0xC6, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x00,
+ 0xFC, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xFC, 0x00, 0xF0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0x00,
+ 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x00,
+ 0xE8, 0x4D, 0x4A, 0x48, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00,
+ 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xF8, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
+ 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x7C, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
+ 0x38, 0x6C, 0x60, 0xF8, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x78,
+ 0xC0, 0xC0, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
+ 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0x78, 0xC0, 0xC0, 0xCC, 0xD8, 0xF0, 0xD8, 0xCC, 0x00,
+ 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xCC, 0xEE, 0xD6, 0xC6, 0xC6, 0x00,
+ 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
+ 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC0, 0xC0, 0x00, 0x00, 0x7C, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C,
+ 0x00, 0x00, 0xF8, 0xCC, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x7C, 0xC0, 0x78, 0x0C, 0x78, 0x00,
+ 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x00,
+ 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0x6C, 0x6C, 0x00,
+ 0x00, 0x00, 0xCC, 0x78, 0x30, 0x78, 0xCC, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0xE0,
+ 0x00, 0x00, 0xFC, 0x18, 0x30, 0x60, 0xFC, 0x00, 0x38, 0x60, 0x60, 0xC0, 0x60, 0x60, 0x38, 0x00,
+ 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0xE0, 0x30, 0x30, 0x18, 0x30, 0x30, 0xE0, 0x00,
+ 0x38, 0x44, 0xBA, 0xAA, 0xBA, 0x44, 0x38, 0x00, 0x00, 0x98, 0x30, 0x60, 0xC8, 0x98, 0x30, 0x00,
+ 0xCC, 0x66, 0x76, 0xBC, 0x98, 0x8C, 0xE6, 0x00, 0xFC, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xFE, 0x00,
+ 0x78, 0x18, 0x18, 0x18, 0x38, 0x78, 0xD8, 0x00, 0xFE, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0xFE, 0x06, 0x06, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x7C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00,
+ 0xDC, 0x66, 0xE6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0xF0, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xF8, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xF8, 0x00,
+ 0xC0, 0xFE, 0x06, 0x06, 0x0C, 0x18, 0x18, 0x00, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00,
+ 0xFC, 0x76, 0x66, 0x66, 0x66, 0x66, 0x6E, 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+ 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00,
+ 0xEE, 0x66, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0xFE, 0xC6, 0xC6, 0xF6, 0x06, 0x06, 0x06, 0x06,
+ 0xFE, 0xC6, 0xC6, 0xFE, 0x06, 0x06, 0xFE, 0x00, 0xFE, 0x66, 0x6C, 0x78, 0x60, 0x60, 0x60, 0x60,
+ 0xEE, 0x66, 0x3C, 0x18, 0x0C, 0x06, 0xFE, 0x00, 0xFE, 0x06, 0x0E, 0xD8, 0xF0, 0xF0, 0xC0, 0xC0,
+ 0xFC, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0xEE, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0x7C, 0x00,
+ 0xFF, 0x67, 0x67, 0x67, 0x67, 0x67, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x00, 0x0C, 0x3E, 0x6C, 0x3E, 0x0C, 0x00, 0x00, 0x38, 0x6C, 0x60, 0xF0, 0x60, 0x60, 0xFC, 0x00,
+ 0x42, 0x3C, 0x66, 0x3C, 0x42, 0x00, 0x00, 0x00, 0xC3, 0x66, 0x3C, 0x18, 0x3C, 0x18, 0x18, 0x00,
+ 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, 0x3C, 0x60, 0x3C, 0x66, 0x3C, 0x06, 0x3C, 0x00,
+ 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x4E, 0x58, 0x4E, 0x40, 0x3F, 0x00,
+ 0x1C, 0xA4, 0xC4, 0xBC, 0x80, 0xFE, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
+ 0x3E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
+ 0x81, 0xB9, 0xA5, 0xB9, 0xA5, 0x81, 0x7E, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x78, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0xFC, 0x00,
+ 0xF0, 0x18, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, 0xF0, 0x18, 0x30, 0x18, 0xF0, 0x00, 0x00, 0x00,
+ 0x30, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xFE, 0xC0,
+ 0x3E, 0x7A, 0x7A, 0x3A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0x60, 0xE0, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
+ 0x38, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
+ 0x40, 0xC6, 0x4C, 0x58, 0x32, 0x66, 0xCF, 0x02, 0x40, 0xC6, 0x4C, 0x58, 0x3E, 0x62, 0xC4, 0x0E,
+ 0xC0, 0x23, 0x66, 0x2C, 0xD9, 0x33, 0x67, 0x01, 0x18, 0x00, 0x18, 0x30, 0x60, 0x66, 0x3C, 0x00,
+ 0x60, 0x30, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x0C, 0x18, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0x38, 0xC6, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x71, 0x8E, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0x6C, 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x38, 0x44, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+ 0x1F, 0x3C, 0x3C, 0x6F, 0x7C, 0xCC, 0xCF, 0x00, 0x1E, 0x30, 0x60, 0x60, 0x30, 0x1E, 0x0C, 0x18,
+ 0x60, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0x18, 0x30, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
+ 0x30, 0xCC, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00, 0xCC, 0x00, 0xFC, 0xC0, 0xF0, 0xC0, 0xFC, 0x00,
+ 0x60, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0x18, 0x30, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
+ 0x30, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00, 0xCC, 0x00, 0x78, 0x30, 0x30, 0x30, 0x78, 0x00,
+ 0x78, 0x6C, 0x66, 0xF6, 0x66, 0x6C, 0x78, 0x00, 0x71, 0xCE, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00,
+ 0x30, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
+ 0x18, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,
+ 0xC3, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, 0x00,
+ 0x3F, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0xFC, 0x00, 0x30, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x0C, 0x18, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x06, 0x08, 0xC3, 0x66, 0x3C, 0x18, 0x18, 0x00,
+ 0x60, 0x60, 0x7E, 0x63, 0x7E, 0x60, 0x60, 0x00, 0x3C, 0x66, 0x66, 0x6C, 0x66, 0x66, 0x6C, 0x60,
+ 0x30, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x18, 0x66, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x71, 0x8E, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x66, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0x18, 0x24, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
+ 0x00, 0x00, 0x7E, 0x1B, 0x7F, 0xD8, 0x77, 0x00, 0x00, 0x00, 0x3C, 0x60, 0x60, 0x60, 0x3C, 0x18,
+ 0x30, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x0C, 0x18, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
+ 0x18, 0x66, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, 0x66, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
+ 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x18, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00,
+ 0x60, 0xFC, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x00,
+ 0x30, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x0C, 0x18, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
+ 0x18, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x71, 0x8E, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00,
+ 0x00, 0x66, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x00, 0x00,
+ 0x00, 0x02, 0x7C, 0xCE, 0xD6, 0xE6, 0x7C, 0x80, 0x30, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x18, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00,
+ 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x0C, 0x18, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x30,
0x60, 0x60, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x00, 0x66, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x30
};
diff --git a/engines/queen/display.h b/engines/queen/display.h
index 953d8f95e8..62a17fc993 100644
--- a/engines/queen/display.h
+++ b/engines/queen/display.h
@@ -109,8 +109,11 @@ public:
void blit(uint8 *dstBuf, uint16 dstPitch, uint16 x, uint16 y, const uint8 *srcBuf, uint16 srcPitch, uint16 w, uint16 h, bool xflip, bool masked);
void fill(uint8 *dstBuf, uint16 dstPitch, uint16 x, uint16 y, uint16 w, uint16 h, uint8 color);
- //! decode a PCX stream
- void readPCX(uint8 *dst, uint16 dstPitch, const uint8 *src, uint16 w, uint16 h);
+ //! decode PCX picture data
+ void decodePCX(const uint8 *src, uint32 srcSize, uint8 *dst, uint16 dstPitch, uint16 *w, uint16 *h, uint8 *pal, uint16 palStart, uint16 palEnd);
+
+ //! decode ILBM picture data
+ void decodeLBM(const uint8 *src, uint32 srcSize, uint8 *dst, uint16 dstPitch, uint16 *w, uint16 *h, uint8 *pal, uint16 palStart, uint16 palEnd, uint8 colorBase = 0);
void horizontalScrollUpdate(int16 xCamera);
void horizontalScroll(int16 scroll);
@@ -223,6 +226,8 @@ private:
uint16 _horizontalScroll;
uint16 _bdWidth, _bdHeight;
+ const char *_imageExt;
+
//! texts list
TextSlot _texts[GAME_SCREEN_HEIGHT];
diff --git a/engines/queen/graphics.cpp b/engines/queen/graphics.cpp
index 60be8f86cc..6d79a71197 100644
--- a/engines/queen/graphics.cpp
+++ b/engines/queen/graphics.cpp
@@ -246,31 +246,76 @@ Graphics::~Graphics() {
}
void Graphics::unpackControlBank() {
- _vm->bankMan()->load("control.BBK",17);
- _vm->bankMan()->unpack(1, 1, 17); // Mouse pointer
- // unpack arrows frames and change hotspot to be always on top
- for (int i = 3; i <= 4; ++i) {
- _vm->bankMan()->unpack(i, i, 17);
- BobFrame *bf = _vm->bankMan()->fetchFrame(i);
- bf->yhotspot += 200;
+ if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ _vm->bankMan()->load("CONTROL.BBK",17);
+
+ // unpack mouse pointer frame
+ _vm->bankMan()->unpack(1, 1, 17);
+
+ // unpack arrows frames and change hotspot to be always on top
+ _vm->bankMan()->unpack(3, 3, 17);
+ _vm->bankMan()->fetchFrame(3)->yhotspot += 200;
+ _vm->bankMan()->unpack(4, 4, 17);
+ _vm->bankMan()->fetchFrame(4)->yhotspot += 200;
+
+ _vm->bankMan()->close(17);
}
- _vm->bankMan()->close(17);
}
void Graphics::setupArrows() {
- int scrollX = _vm->display()->horizontalScroll();
- BobSlot *arrow;
- arrow = bob(ARROW_BOB_UP);
- arrow->curPos(303 + 8 + scrollX, 150 + 1 + 200);
- arrow->frameNum = 3;
- arrow = bob(ARROW_BOB_DOWN);
- arrow->curPos(303 + scrollX, 175 + 200);
- arrow->frameNum = 4;
+ if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ int scrollX = _vm->display()->horizontalScroll();
+ BobSlot *arrow;
+ arrow = bob(ARROW_BOB_UP);
+ arrow->curPos(303 + 8 + scrollX, 150 + 1 + 200);
+ arrow->frameNum = 3;
+ arrow = bob(ARROW_BOB_DOWN);
+ arrow->curPos(303 + scrollX, 175 + 200);
+ arrow->frameNum = 4;
+ }
}
void Graphics::setupMouseCursor() {
- BobFrame *bf = _vm->bankMan()->fetchFrame(1);
- _vm->display()->setMouseCursor(bf->data, bf->width, bf->height);
+ if (_vm->resource()->getPlatform() == Common::kPlatformAmiga) {
+ static const uint8 defaultAmigaCursor[4 * 15] = {
+ 0x00, 0x00, 0xFF, 0xC0,
+ 0x7F, 0x80, 0x80, 0x40,
+ 0x7F, 0x00, 0x80, 0x80,
+ 0x7E, 0x00, 0x81, 0x00,
+ 0x7F, 0x00, 0x80, 0x80,
+ 0x7F, 0x80, 0x80, 0x40,
+ 0x7F, 0xC0, 0x80, 0x20,
+ 0x6F, 0xE0, 0x90, 0x10,
+ 0x47, 0xF0, 0xA8, 0x08,
+ 0x03, 0xF8, 0xC4, 0x04,
+ 0x01, 0xFC, 0x02, 0x02,
+ 0x00, 0xF8, 0x01, 0x04,
+ 0x00, 0x70, 0x00, 0x88,
+ 0x00, 0x20, 0x00, 0x50,
+ 0x00, 0x00, 0x00, 0x20
+ };
+ uint8 cursorData[16 * 15];
+ const uint8 *src = defaultAmigaCursor;
+ int i = 0;
+ for (int h = 0; h < 15; ++h) {
+ for (int b = 0; b < 16; ++b) {
+ const uint16 mask = (1 << (15 - b));
+ cursorData[i] = 0;
+ if (READ_BE_UINT16(src + 0) & mask) {
+ cursorData[i] |= 4;
+ }
+ if (READ_BE_UINT16(src + 2) & mask) {
+ cursorData[i] |= 8;
+ }
+ ++i;
+ }
+ src += 4;
+ }
+ _vm->display()->setMouseCursor(cursorData, 16, 15);
+ } else {
+ BobFrame *bf = _vm->bankMan()->fetchFrame(1);
+ _vm->display()->setMouseCursor(bf->data, bf->width, bf->height);
+ }
}
void Graphics::drawBob(const BobSlot *bs, const BobFrame *bf, const Box *bbox, int16 x, int16 y) {
@@ -1119,7 +1164,7 @@ BamScene::BamScene(QueenEngine *vm)
}
void BamScene::playSfx() {
- // Don't try to play all the sounds. This is only necessary for the
+ // Don't try to play all the sounds. This is only necessary for the
// fight bam, in which the number of 'sfx bam frames' is too much
// important / too much closer. The original game does not have
// this problem since its playSfx() function returns immediately
diff --git a/engines/queen/journal.cpp b/engines/queen/journal.cpp
index b36b4bad31..5e722ef111 100644
--- a/engines/queen/journal.cpp
+++ b/engines/queen/journal.cpp
@@ -268,7 +268,7 @@ void Journal::handleMouseDown(int x, int y) {
if (_saveDescriptions[currentSlot][0]) {
_vm->graphics()->clearBobs();
_vm->display()->palFadeOut(ROOM_JOURNAL);
- _vm->music()->stopSong();
+ _vm->sound()->stopSong();
_vm->loadGameState(currentSlot);
_vm->display()->clearTexts(0, GAME_SCREEN_HEIGHT - 1);
_quitMode = QM_RESTORE;
@@ -320,7 +320,7 @@ void Journal::handleMouseDown(int x, int y) {
break;
case ZN_MUSIC_VOLUME:
val = (x - 136) * QueenEngine::MAX_MUSIC_VOLUME / (266 - 136);
- _vm->music()->setVolume(val);
+ _vm->sound()->setVolume(val);
drawConfigPanel();
break;
case ZN_DESC_1:
@@ -357,7 +357,7 @@ void Journal::handleMouseDown(int x, int y) {
if (_vm->sound()->musicOn()) {
_vm->sound()->playLastSong();
} else {
- _vm->music()->stopSong();
+ _vm->sound()->stopSong();
}
drawConfigPanel();
break;
@@ -447,7 +447,7 @@ void Journal::drawConfigPanel() {
_vm->checkOptionSettings();
drawSlideBar(_vm->talkSpeed(), QueenEngine::MAX_TEXT_SPEED, BOB_TALK_SPEED, 164, FRAME_BLUE_PIN);
- drawSlideBar(_vm->music()->volume(), QueenEngine::MAX_MUSIC_VOLUME, BOB_MUSIC_VOLUME, 177, FRAME_GREEN_PIN);
+ drawSlideBar(_vm->sound()->volume(), QueenEngine::MAX_MUSIC_VOLUME, BOB_MUSIC_VOLUME, 177, FRAME_GREEN_PIN);
drawCheckBox(_vm->sound()->sfxOn(), BOB_SFX_TOGGLE, 221, 155, FRAME_CHECK_BOX);
drawCheckBox(_vm->sound()->speechOn(), BOB_SPEECH_TOGGLE, 158, 155, FRAME_CHECK_BOX);
@@ -468,12 +468,6 @@ void Journal::drawInfoPanel() {
case 'a':
_vm->display()->setTextCentered(132, "Amiga A500/600", false);
break;
- case 'A':
- _vm->display()->setTextCentered(132, "Amiga A1200", false);
- break;
- case 'c':
- _vm->display()->setTextCentered(132, "Amiga CD-32", false);
- break;
}
switch (ver[1]) {
case 'E':
diff --git a/engines/queen/logic.cpp b/engines/queen/logic.cpp
index f7a23eeb3d..848efb68b4 100644
--- a/engines/queen/logic.cpp
+++ b/engines/queen/logic.cpp
@@ -98,7 +98,8 @@ void Logic::readQueenJas() {
}
_roomData[_numRooms + 1] = _numObjects;
- if (_vm->resource()->isDemo()) {
+ if ((_vm->resource()->isDemo() && _vm->resource()->getPlatform() == Common::kPlatformPC) ||
+ (_vm->resource()->isInterview() && _vm->resource()->getPlatform() == Common::kPlatformAmiga)) {
_sfxName = NULL;
} else {
_sfxName = new uint16[_numRooms + 1];
diff --git a/engines/queen/music.cpp b/engines/queen/music.cpp
index bf7402e824..ccd7f9c86f 100644
--- a/engines/queen/music.cpp
+++ b/engines/queen/music.cpp
@@ -56,7 +56,7 @@ void MusicPlayer::setVolume(int volume) {
volume = 255;
if (_masterVolume == volume)
- return;
+ return;
_masterVolume = volume;
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 168f80f364..2363d29429 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -40,14 +40,11 @@
#include "queen/grid.h"
#include "queen/input.h"
#include "queen/logic.h"
-#include "queen/music.h"
#include "queen/resource.h"
#include "queen/sound.h"
#include "queen/talk.h"
#include "queen/walk.h"
-#include "sound/mididrv.h"
-
static const PlainGameDescriptor queenGameDescriptor = {
"queen", "Flight of the Amazon Queen"
};
@@ -80,7 +77,7 @@ GameList Engine_QUEEN_detectGames(const FSList &fslist) {
}
Queen::DetectedGameVersion version;
if (Queen::Resource::detectVersion(&version, &dataFile)) {
- GameDescriptor dg(queenGameDescriptor.gameid, queenGameDescriptor.description, version.language, Common::kPlatformPC);
+ GameDescriptor dg(queenGameDescriptor.gameid, queenGameDescriptor.description, version.language, version.platform);
if (version.features & Queen::GF_DEMO) {
dg.updateDesc("Demo");
} else if (version.features & Queen::GF_INTERVIEW) {
@@ -123,7 +120,6 @@ QueenEngine::~QueenEngine() {
delete _grid;
delete _input;
delete _logic;
- delete _music;
delete _sound;
delete _walk;
}
@@ -153,7 +149,7 @@ void QueenEngine::checkOptionSettings() {
}
void QueenEngine::readOptionSettings() {
- _music->setVolume(ConfMan.getInt("music_volume"));
+ _sound->setVolume(ConfMan.getInt("music_volume"));
_sound->musicToggle(!ConfMan.getBool("music_mute"));
_sound->sfxToggle(!ConfMan.getBool("sfx_mute"));
_talkSpeed = (ConfMan.getInt("talkspeed") * (MAX_TEXT_SPEED - MIN_TEXT_SPEED) + 255 / 2) / 255 + MIN_TEXT_SPEED;
@@ -163,7 +159,7 @@ void QueenEngine::readOptionSettings() {
}
void QueenEngine::writeOptionSettings() {
- ConfMan.setInt("music_volume", _music->volume());
+ ConfMan.setInt("music_volume", _sound->volume());
ConfMan.setBool("music_mute", !_sound->musicOn());
ConfMan.setBool("sfx_mute", !_sound->sfxOn());
ConfMan.setInt("talkspeed", ((_talkSpeed - MIN_TEXT_SPEED) * 255 + (MAX_TEXT_SPEED - MIN_TEXT_SPEED) / 2) / (MAX_TEXT_SPEED - MIN_TEXT_SPEED));
@@ -388,16 +384,6 @@ int QueenEngine::init() {
// Set mixer music volume to maximum, since music volume is regulated by MusicPlayer's MIDI messages
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, Audio::Mixer::kMaxMixerVolume);
- int midiDriver = MidiDriver::detectMusicDriver(MDT_MIDI | MDT_ADLIB | MDT_PREFER_MIDI);
- bool native_mt32 = ((midiDriver == MD_MT32) || ConfMan.getBool("native_mt32"));
-
- MidiDriver *driver = MidiDriver::createMidi(midiDriver);
- if (native_mt32)
- driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
-
- _music = new Music(driver, this);
- _music->hasNativeMT32(native_mt32);
-
_sound = Sound::makeSoundInstance(_mixer, this, _resource->getCompression());
_walk = new Walk(this);
//_talkspeedScale = (MAX_TEXT_SPEED - MIN_TEXT_SPEED) / 255.0;
diff --git a/engines/queen/queen.h b/engines/queen/queen.h
index d51ad97abc..c1a9b0f455 100644
--- a/engines/queen/queen.h
+++ b/engines/queen/queen.h
@@ -65,7 +65,6 @@ class Graphics;
class Grid;
class Input;
class Logic;
-class Music;
class Resource;
class Sound;
class Walk;
@@ -85,7 +84,6 @@ public:
Grid *grid() const { return _grid; }
Input *input() const { return _input; }
Logic *logic() const { return _logic; }
- Music *music() const { return _music; }
Resource *resource() const { return _resource; }
Sound *sound() const { return _sound; }
Walk *walk() const { return _walk; }
@@ -146,7 +144,6 @@ protected:
Grid *_grid;
Input *_input;
Logic *_logic;
- Music *_music;
Resource *_resource;
Sound *_sound;
Walk *_walk;
diff --git a/engines/queen/resource.cpp b/engines/queen/resource.cpp
index 6945635818..cece71ae8b 100644
--- a/engines/queen/resource.cpp
+++ b/engines/queen/resource.cpp
@@ -46,7 +46,10 @@ const RetailGameVersion Resource::_gameVersions[] = {
{ "CHM10", 0x000DA981, 190705558 },
{ "PE100", 0x00101EC6, 3724538 },
{ "PE100", 0x00102B7F, 3732177 },
- { "PEint", 0x00103838, 1915913 }
+ { "PEint", 0x00103838, 1915913 },
+ { "aEM10", 0x00103F1E, 351775 },
+ { "CE101", 0x00107D8D, 563335 },
+ { "PE100", 0x001086D4, 597032 }
};
static int compareResourceEntry(const void *a, const void *b) {
@@ -107,26 +110,41 @@ ResourceEntry *Resource::resourceEntry(const char *filename) const {
return re;
}
+static uint8 emptyBank[] = { 0, 0 };
+
uint8 *Resource::loadFile(const char *filename, uint32 skipBytes, uint32 *size) {
+ debug(7, "Resource::loadFile('%s')", filename);
ResourceEntry *re = resourceEntry(filename);
+ if (_version.platform == Common::kPlatformAmiga && re == NULL) {
+ return emptyBank;
+ }
assert(re != NULL);
uint32 sz = re->size - skipBytes;
if (size != NULL) {
*size = sz;
}
-
byte *dstBuf = new byte[sz];
- _resourceFile.seek(re->offset + skipBytes);
- _resourceFile.read(dstBuf, sz);
+ if (re->bundle == 1) {
+ _resourceFile.seek(re->offset + skipBytes);
+ _resourceFile.read(dstBuf, sz);
+ } else {
+ Common::File resourceFile;
+ char name[20];
+ sprintf(name, "queen.%d", re->bundle);
+ if (!resourceFile.open(name)) {
+ error("Could not open resource file '%s'", name);
+ }
+ resourceFile.seek(re->offset + skipBytes);
+ resourceFile.read(dstBuf, sz);
+ }
return dstBuf;
}
bool Resource::detectVersion(DetectedGameVersion *ver, Common::File *f) {
memset(ver, 0, sizeof(DetectedGameVersion));
- char versionStr[6];
if (f->readUint32BE() == MKID_BE('QTBL')) {
- f->read(versionStr, 6);
+ f->read(ver->str, 6);
f->skip(2);
ver->compression = f->readByte();
ver->features = GF_REBUILT;
@@ -137,13 +155,26 @@ bool Resource::detectVersion(DetectedGameVersion *ver, Common::File *f) {
warning("Unknown/unsupported FOTAQ version");
return false;
}
- strcpy(versionStr, gameVersion->str);
+ strcpy(ver->str, gameVersion->str);
ver->compression = COMPRESSION_NONE;
ver->features = 0;
ver->tableOffset = gameVersion->tableOffset;
+ strcpy(ver->str, gameVersion->str);
+
+ // Handle game versions for which versionStr information is irrevelant
+ if (gameVersion == &_gameVersions[VER_AMI_DEMO]) { // CE101
+ ver->features |= GF_FLOPPY | GF_DEMO;
+ ver->platform = Common::kPlatformAmiga;
+ return true;
+ }
+ if (gameVersion == &_gameVersions[VER_AMI_INTERVIEW]) { // PE100
+ ver->features |= GF_FLOPPY | GF_INTERVIEW;
+ ver->platform = Common::kPlatformAmiga;
+ return true;
+ }
}
- switch (versionStr[1]) {
+ switch (ver->str[1]) {
case 'E':
if (Common::parseLanguage(ConfMan.get("language")) == Common::RU_RUS) {
ver->language = Common::RU_RUS;
@@ -167,33 +198,43 @@ bool Resource::detectVersion(DetectedGameVersion *ver, Common::File *f) {
ver->language = Common::HB_ISR;
break;
default:
- warning("Unknown language id '%c', defaulting to English", versionStr[1]);
- ver->language = Common::EN_ANY;
+ error("Invalid language id '%c'", ver->str[1]);
break;
}
- switch (versionStr[0]) {
+ switch (ver->str[0]) {
case 'P':
ver->features |= GF_FLOPPY;
+ ver->platform = Common::kPlatformPC;
break;
case 'C':
ver->features |= GF_TALKIE;
+ ver->platform = Common::kPlatformPC;
+ break;
+ case 'a':
+ ver->features |= GF_FLOPPY;
+ ver->platform = Common::kPlatformAmiga;
+ break;
+ default:
+ error("Invalid platform id '%c'", ver->str[0]);
break;
}
- if (strcmp(versionStr, "PE100") == 0) {
+ if (strcmp(ver->str + 2, "100") == 0 || strcmp(ver->str + 2, "101") == 0) {
ver->features |= GF_DEMO;
- } else if (strcmp(versionStr, "PEint") == 0) {
+ } else if (strcmp(ver->str + 2, "int") == 0) {
ver->features |= GF_INTERVIEW;
}
-
- strcpy(ver->str, versionStr);
return true;
}
void Resource::checkJASVersion() {
+ if (_version.platform == Common::kPlatformAmiga) {
+ warning("Resource::checkJASVersion() disabled for Amiga versions");
+ return;
+ }
ResourceEntry *re = resourceEntry("QUEEN.JAS");
- assert(re != NULL);
+ assert(re != NULL && re->bundle == 1);
uint32 offset = re->offset;
if (isDemo())
offset += JAS_VERSION_OFFSET_DEMO;
@@ -252,17 +293,14 @@ const RetailGameVersion *Resource::detectGameVersionFromSize(uint32 size) {
}
Common::File *Resource::findSound(const char *filename, uint32 *size) {
- assert(strstr(filename, ".SB"));
- Common::File *f = NULL;
+ assert(strstr(filename, ".SB") != NULL || strstr(filename, ".AMR") != NULL);
ResourceEntry *re = resourceEntry(filename);
- if (re) {
- if (size != NULL) {
- *size = re->size;
- }
+ if (re && re->bundle == 1) {
+ *size = re->size;
_resourceFile.seek(re->offset);
- f = &_resourceFile;
+ return &_resourceFile;
}
- return f;
+ return NULL;
}
LineReader::LineReader(char *buffer, uint32 bufsize) : _buffer(buffer), _bufSize(bufsize), _current(0) {
diff --git a/engines/queen/resource.h b/engines/queen/resource.h
index 2e669198fb..2c16e51b82 100644
--- a/engines/queen/resource.h
+++ b/engines/queen/resource.h
@@ -44,6 +44,7 @@ struct RetailGameVersion {
};
struct DetectedGameVersion {
+ Common::Platform platform;
Common::Language language;
uint8 features;
uint8 compression;
@@ -87,29 +88,34 @@ public:
//! returns the language of the game
Common::Language getLanguage() const { return _version.language; }
+ Common::Platform getPlatform() const { return _version.platform; }
+
//! detect game version
static bool detectVersion(DetectedGameVersion *ver, Common::File *f);
enum Version {
- VER_ENG_FLOPPY = 0,
- VER_ENG_TALKIE = 1,
- VER_FRE_FLOPPY = 2,
- VER_FRE_TALKIE = 3,
- VER_GER_FLOPPY = 4,
- VER_GER_TALKIE = 5,
- VER_ITA_FLOPPY = 6,
- VER_ITA_TALKIE = 7,
- VER_SPA_TALKIE = 8,
- VER_HEB_TALKIE = 9,
- VER_DEMO_PCGAMES = 10,
- VER_DEMO = 11,
- VER_INTERVIEW = 12,
-
- VER_COUNT = 13
+ VER_ENG_FLOPPY = 0,
+ VER_ENG_TALKIE = 1,
+ VER_FRE_FLOPPY = 2,
+ VER_FRE_TALKIE = 3,
+ VER_GER_FLOPPY = 4,
+ VER_GER_TALKIE = 5,
+ VER_ITA_FLOPPY = 6,
+ VER_ITA_TALKIE = 7,
+ VER_SPA_TALKIE = 8,
+ VER_HEB_TALKIE = 9,
+ VER_DEMO_PCGAMES = 10,
+ VER_DEMO = 11,
+ VER_INTERVIEW = 12,
+ VER_AMI_ENG_FLOPPY = 13,
+ VER_AMI_DEMO = 14,
+ VER_AMI_INTERVIEW = 15,
+
+ VER_COUNT = 16
};
enum {
- CURRENT_TBL_VERSION = 1
+ CURRENT_TBL_VERSION = 2
};
enum {
diff --git a/engines/queen/sound.cpp b/engines/queen/sound.cpp
index 917351f3da..e228d6a1dd 100644
--- a/engines/queen/sound.cpp
+++ b/engines/queen/sound.cpp
@@ -21,45 +21,47 @@
*/
#include "common/stdafx.h"
+#include "common/config-manager.h"
#include "common/endian.h"
+#include "common/stream.h"
#include "queen/sound.h"
-
#include "queen/input.h"
+#include "queen/logic.h"
#include "queen/music.h"
#include "queen/queen.h"
#include "queen/resource.h"
#include "sound/flac.h"
+#include "sound/mididrv.h"
#include "sound/mp3.h"
#include "sound/vorbis.h"
#define SB_HEADER_SIZE_V104 110
#define SB_HEADER_SIZE_V110 122
-#define STOP_MUSIC -1
namespace Queen {
-class SilentSound : public Sound {
+class SilentSound : public PCSound {
public:
- SilentSound(Audio::Mixer *mixer, QueenEngine *vm) : Sound(mixer, vm) {}
+ SilentSound(Audio::Mixer *mixer, QueenEngine *vm) : PCSound(mixer, vm) {}
protected:
void playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle) {
// Do nothing
}
};
-class SBSound : public Sound {
+class SBSound : public PCSound {
public:
- SBSound(Audio::Mixer *mixer, QueenEngine *vm) : Sound(mixer, vm) {}
+ SBSound(Audio::Mixer *mixer, QueenEngine *vm) : PCSound(mixer, vm) {}
protected:
void playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle);
};
#ifdef USE_MAD
-class MP3Sound : public Sound {
+class MP3Sound : public PCSound {
public:
- MP3Sound(Audio::Mixer *mixer, QueenEngine *vm) : Sound(mixer, vm) {}
+ MP3Sound(Audio::Mixer *mixer, QueenEngine *vm) : PCSound(mixer, vm) {}
protected:
void playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle) {
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, soundHandle, Audio::makeMP3Stream(f, size));
@@ -68,9 +70,9 @@ protected:
#endif
#ifdef USE_VORBIS
-class OGGSound : public Sound {
+class OGGSound : public PCSound {
public:
- OGGSound(Audio::Mixer *mixer, QueenEngine *vm) : Sound(mixer, vm) {}
+ OGGSound(Audio::Mixer *mixer, QueenEngine *vm) : PCSound(mixer, vm) {}
protected:
void playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle) {
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, soundHandle, Audio::makeVorbisStream(f, size));
@@ -79,9 +81,9 @@ protected:
#endif
#ifdef USE_FLAC
-class FLACSound : public Sound {
+class FLACSound : public PCSound {
public:
- FLACSound(Audio::Mixer *mixer, QueenEngine *vm) : Sound(mixer, vm) {};
+ FLACSound(Audio::Mixer *mixer, QueenEngine *vm) : PCSound(mixer, vm) {};
protected:
void playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle) {
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, soundHandle, Audio::makeFlacStream(f, size));
@@ -90,15 +92,13 @@ protected:
#endif // #ifdef USE_FLAC
Sound::Sound(Audio::Mixer *mixer, QueenEngine *vm) :
- _mixer(mixer), _vm(vm), _sfxToggle(true), _speechToggle(true), _musicToggle(true), _lastOverride(0) {
-#ifdef ENABLE_AMIGA_MUSIC
- _lastModuleOverride = -1;
-#endif
+ _mixer(mixer), _vm(vm), _sfxToggle(true), _speechToggle(true), _musicToggle(true),
+ _speechSfxExists(false), _lastOverride(0), _masterVolume(0) {
}
Sound *Sound::makeSoundInstance(Audio::Mixer *mixer, QueenEngine *vm, uint8 compression) {
- if (!mixer->isReady())
- return new SilentSound(mixer, vm);
+ if (vm->resource()->getPlatform() == Common::kPlatformAmiga)
+ return new AmigaSound(mixer, vm);
switch (compression) {
case COMPRESSION_NONE:
@@ -130,135 +130,52 @@ Sound *Sound::makeSoundInstance(Audio::Mixer *mixer, QueenEngine *vm, uint8 comp
}
}
-void Sound::waitFinished(bool isSpeech) {
- while (_mixer->isSoundHandleActive(isSpeech ? _speechHandle : _sfxHandle))
- _vm->input()->delay(10);
-}
-
-void Sound::playSfx(uint16 sfx) {
- if (sfxOn() && sfx != 0) {
-#ifndef PALMOS_68K
- playSound(_sfxName[sfx - 1], false);
-#else
- playSound(_sfxName + 10 * (sfx - 1), false); // saved as 8char + /0/0
-#endif
- }
-}
-
-void Sound::playSpeech(const char *base) {
- if (speechOn()) {
- playSound(base, true);
- }
+void Sound::saveState(byte *&ptr) {
+ WRITE_BE_UINT16(ptr, _lastOverride); ptr += 2;
}
-void Sound::playSound(const char *base, bool isSpeech) {
- char name[13];
- strcpy(name, base);
- // alter filename to add zeros and append ".SB"
- for (int i = 0; i < 8; i++) {
- if (name[i] == ' ')
- name[i] = '0';
- }
- strcat(name, ".SB");
- waitFinished(isSpeech);
- uint32 size;
- Common::File *f = _vm->resource()->findSound(name, &size);
- if (f) {
- playSoundData(f, size, isSpeech ? &_speechHandle : &_sfxHandle);
- _speechSfxExists = isSpeech;
- } else {
- _speechSfxExists = false;
- }
+void Sound::loadState(uint32 ver, byte *&ptr) {
+ _lastOverride = (int16)READ_BE_INT16(ptr); ptr += 2;
}
-#ifdef ENABLE_AMIGA_MUSIC
-
-static struct {
- const char *name;
- uint8 songNum;
- uint8 remapSongNumTable[6];
-} amigaMusicData[] = {
- { "HOTEL", 1, { 1, 2, 39, 0 } },
- { "HOTEL", 2, { 20, 30, 34, 0 } },
- { "HOTEL", 3, { 19, 0 } },
- { "HOTEL", 4, { 29, 35, 36, 0 } },
- { "JUNG", 1, { 40, 0 } },
- { "JUNG", 2, { 3, 38, 89, 0 } },
- { "TEMPLE", 1, { 54, 0 } },
- { "TEMPLE", 2, { 12, 0 } },
- { "TEMPLE", 3, { 7, 9, 10, 11, 0 } },
- { "TEMPLE", 4, { 31, 0 } },
- { "FLODA", 1, { 16, 0 } },
- { "FLODA", 2, { 17, 0 } },
- { "FLODA", 3, { 13, 0 } },
- { "FLODA", 4, { 41, 0 } },
- { "FLODA", 5, { 30, 43, 0 } },
- { "TITLE", 1, { 67, 88, 203, 0 } },
- { "AWESTRUK", 1, { 37, 52, 90, 196, 0 } },
- { "'JUNGLE'", 1, { 91, 0 } },
- { "FRANK", 1, { 46, 0 } },
- { "BOB", 1, { 6, 0 } },
- { "AZURA", 1, { 44, 53, 204, 0 } },
- { "FORT", 1, { 21, 0 } },
- { "ROCKET", 1, { 32, 194, 195, 0 } },
- { "ROBOT", 1, { 92, 0 } }
-};
-
-void Sound::playSong(int16 songNum) {
- debug(2, "Sound::playSong %d override %d/%d", songNum, _lastModuleOverride, _lastOverride);
+PCSound::PCSound(Audio::Mixer *mixer, QueenEngine *vm)
+ : Sound(mixer, vm) {
- const char *moduleName = 0;
- for (int i = 0; i < ARRAYSIZE(amigaMusicData) && !moduleName; ++i) {
- for (int j = 0; amigaMusicData[i].remapSongNumTable[j] != 0; ++j) {
- if (amigaMusicData[i].remapSongNumTable[j] == songNum) {
- moduleName = amigaMusicData[i].name;
- songNum = amigaMusicData[i].songNum;
+ int midiDriver = MidiDriver::detectMusicDriver(MDT_MIDI | MDT_ADLIB | MDT_PREFER_MIDI);
+ bool native_mt32 = ((midiDriver == MD_MT32) || ConfMan.getBool("native_mt32"));
- if (_lastModuleOverride == i && _lastOverride == songNum)
- return;
+ MidiDriver *driver = MidiDriver::createMidi(midiDriver);
+ if (native_mt32)
+ driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
- _lastModuleOverride = i;
- _lastOverride = songNum;
- break;
- }
- }
- }
- if (!moduleName)
- return;
-
- _mixer->stopHandle(_musicHandle);
-
- debug(1, "playAmigaSong name '%s' subsong %d", moduleName, songNum);
-
- char buf[16];
- sprintf(buf, "%s.SNG", moduleName);
- Common::File fsng;
- if (!fsng.open(buf))
- return;
-
- sprintf(buf, "%s.INS", moduleName);
- Common::File fins;
- if (!fins.open(buf))
- return;
+ _music = new Music(driver, vm);
+ _music->hasNativeMT32(native_mt32);
+}
- Audio::AudioStream *rjp1Stream = Audio::makeRjp1Stream(&fsng, &fins, songNum);
- if (rjp1Stream) {
- _mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_musicHandle, rjp1Stream);
- }
+PCSound::~PCSound() {
+ delete _music;
}
+void PCSound::playSfx(uint16 sfx) {
+ if (sfxOn() && sfx != 0) {
+#ifndef PALMOS_68K
+ playSound(_sfxName[sfx - 1], false);
#else
+ playSound(_sfxName + 10 * (sfx - 1), false); // saved as 8char + /0/0
+#endif
+ }
+}
-void Sound::playSong(int16 songNum) {
+void PCSound::playSong(int16 songNum) {
if (songNum <= 0) {
- _vm->music()->stopSong();
+ _music->stopSong();
return;
}
int16 newTune;
if (_vm->resource()->isDemo()) {
if (songNum == 17) {
- _vm->music()->stopSong();
+ _music->stopSong();
return;
}
newTune = _songDemo[songNum - 1].tuneList[0] - 1;
@@ -281,25 +198,58 @@ void Sound::playSong(int16 songNum) {
break;
// Alter song settings (such as volume) and exit
case 2:
- _vm->music()->toggleVChange();
+ _music->toggleVChange();
default:
return;
}
_lastOverride = songNum;
- _vm->music()->queueTuneList(newTune);
- _vm->music()->playMusic();
+ _music->queueTuneList(newTune);
+ _music->playMusic();
}
-#endif // ENABLE_AMIGA_MUSIC
+void PCSound::stopSong() {
+ _music->stopSong();
+}
-void Sound::saveState(byte *&ptr) {
- WRITE_BE_UINT16(ptr, _lastOverride); ptr += 2;
+void PCSound::playSpeech(const char *base) {
+ if (speechOn()) {
+ playSound(base, true);
+ }
}
-void Sound::loadState(uint32 ver, byte *&ptr) {
- _lastOverride = (int16)READ_BE_INT16(ptr); ptr += 2;
+void PCSound::setVolume(int vol) {
+ _music->setVolume(vol);
+}
+
+int PCSound::volume() {
+ return _music->volume();
+}
+
+void PCSound::waitFinished(bool isSpeech) {
+ while (_mixer->isSoundHandleActive(isSpeech ? _speechHandle : _sfxHandle))
+ _vm->input()->delay(10);
+}
+
+void PCSound::playSound(const char *base, bool isSpeech) {
+ char name[13];
+ strcpy(name, base);
+ // alter filename to add zeros and append ".SB"
+ for (int i = 0; i < 8; i++) {
+ if (name[i] == ' ')
+ name[i] = '0';
+ }
+ strcat(name, ".SB");
+ waitFinished(isSpeech);
+ uint32 size;
+ Common::File *f = _vm->resource()->findSound(name, &size);
+ if (f) {
+ playSoundData(f, size, isSpeech ? &_speechHandle : &_sfxHandle);
+ _speechSfxExists = isSpeech;
+ } else {
+ _speechSfxExists = false;
+ }
}
void SBSound::playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle) {
@@ -328,4 +278,425 @@ void SBSound::playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *so
}
}
+AmigaSound::AmigaSound(Audio::Mixer *mixer, QueenEngine *vm)
+ : Sound(mixer, vm), _fanfareRestore(0), _fanfareCount(0), _fluteCount(0) {
+}
+
+void AmigaSound::playSfx(uint16 sfx) {
+ if (_vm->logic()->currentRoom() == 111) {
+ // lightning sound
+ playSound("88SSSSSS");
+ }
+}
+
+void AmigaSound::playSong(int16 song) {
+ debug(2, "Sound::playSong %d override %d", song, _lastOverride);
+
+ if (song < 0) {
+ stopSong();
+ return;
+ }
+
+ // remap song numbers for the Amiga
+ switch (song)
+ {
+ case 1:
+ case 2:
+ song = 39;
+ break;
+ case 37:
+ case 52:
+ case 196:
+ song = 90;
+ break;
+ case 38:
+ case 89:
+ song = 3;
+ break;
+ case 24:
+ case 158:
+ song = 117;
+ break;
+ case 71:
+ case 72:
+ case 73:
+ case 75:
+ song = 133;
+ break;
+ case 203:
+ song = 67;
+ break;
+ case 145:
+ song = 140;
+ break;
+ case 53:
+ case 204:
+ song = 44;
+ break;
+ case 136:
+ case 142:
+ case 179:
+ song = 86;
+ break;
+ case 101:
+ case 102:
+ case 143:
+ song = 188;
+ break;
+ case 65:
+ case 62:
+ song = 69;
+ break;
+ case 118:
+ case 119:
+ song = 137;
+ break;
+ case 130:
+ case 131:
+ song = 59;
+ break;
+ case 174:
+ case 175:
+ song = 57;
+ break;
+ case 171:
+ case 121:
+ song = 137;
+ break;
+ case 138:
+ case 170:
+ case 149:
+ song = 28;
+ break;
+ case 122:
+ case 180:
+ case 83:
+ case 98:
+ song = 83;
+ break;
+ case 20:
+ case 33:
+ song = 34;
+ break;
+ case 29:
+ case 35:
+ song = 36;
+ break;
+ case 7:
+ case 9:
+ case 10:
+ song = 11;
+ break;
+ case 110:
+ song = 94;
+ break;
+ case 111:
+ song = 95;
+ break;
+ case 30:
+ song = 43;
+ break;
+ case 76:
+ song = 27;
+ break;
+ case 194:
+ case 195:
+ song = 32;
+ break;
+ }
+
+ if (_lastOverride != 32 && _lastOverride != 44) {
+ if (playSpecialSfx(song)) {
+ return;
+ }
+ }
+
+ if (_lastOverride == song && _mixer->isSoundHandleActive(_modHandle)) {
+ return;
+ }
+ switch (song) {
+ // hotel
+ case 39:
+ playModule("HOTEL", 1);
+ break;
+ case 19:
+ playModule("HOTEL", 3);
+ break;
+ case 34:
+ playModule("HOTEL", 2);
+ break;
+ case 36:
+ playModule("HOTEL", 4);
+ _fanfareRestore = _lastOverride;
+ _fanfareCount = 60;
+ break;
+ // jungle
+ case 40:
+ playModule("JUNG", 1);
+ _fanfareRestore = _lastOverride;
+ _fanfareCount = 80;
+ _fluteCount = 100;
+ break;
+ case 3:
+ playModule("JUNG", 2);
+ _fluteCount = 100;
+ break;
+ // temple
+ case 54:
+ playModule("TEMPLE", 1);
+ break;
+ case 12:
+ playModule("TEMPLE", 2);
+ break;
+ case 11:
+ playModule("TEMPLE", 3);
+ break;
+ case 31:
+ playModule("TEMPLE", 4);
+ _fanfareRestore = _lastOverride;
+ _fanfareCount = 80;
+ break;
+ // floda
+ case 41:
+ playModule("FLODA", 4);
+ _fanfareRestore = _lastOverride;
+ _fanfareCount = 60;
+ break;
+ case 13:
+ playModule("FLODA", 3);
+ break;
+ case 16:
+ playModule("FLODA", 1);
+ break;
+ case 17:
+ playModule("FLODA", 2);
+ break;
+ case 43:
+ playModule("FLODA", 5);
+ break;
+ // end credits
+ case 67:
+ playModule("TITLE", 1);
+ break;
+ // intro credits
+ case 88:
+ playModule("TITLE", 1);
+ break;
+ // valley
+ case 90:
+ playModule("AWESTRUK", 1);
+ break;
+ // confrontation
+ case 91:
+ playModule("'JUNGLE'", 1);
+ break;
+ // Frank
+ case 46:
+ playModule("FRANK", 1);
+ break;
+ // trader bob
+ case 6:
+ playModule("BOB", 1);
+ break;
+ // azura
+ case 44:
+ playModule("AZURA", 1);
+ break;
+ // amazon fortress
+ case 21:
+ playModule("FORT", 1);
+ break;
+ // rocket
+ case 32:
+ playModule("ROCKET", 1);
+ break;
+ // robot
+ case 92:
+ playModule("ROBOT", 1);
+ break;
+ default:
+ // song not available in the amiga version
+ return;
+ }
+ _lastOverride = song;
+}
+
+void AmigaSound::stopSfx() {
+ _mixer->stopHandle(_sfxHandle);
+}
+
+void AmigaSound::stopSong() {
+ _mixer->stopHandle(_modHandle);
+ _fanfareCount = _fluteCount = 0;
+}
+
+void AmigaSound::updateMusic() {
+ if (_fanfareCount > 0) {
+ --_fanfareCount;
+ if (_fanfareCount == 0) {
+ playSong(_fanfareRestore);
+ }
+ }
+ if (_fluteCount > 0 && (_lastOverride == 40 || _lastOverride == 3)) {
+ --_fluteCount;
+ if (_fluteCount == 0) {
+// playPattern(3, 5 + (getRandomNumber() & 7));
+ _fluteCount = 100;
+ }
+ }
+}
+
+void AmigaSound::playSound(const char *base) {
+ char soundName[20];
+ sprintf(soundName, "%s.AMR", base);
+
+ uint32 soundSize;
+ Common::File *f = _vm->resource()->findSound(soundName, &soundSize);
+ if (f) {
+ uint8 *soundData = (uint8 *)malloc(soundSize);
+ if (soundData) {
+ f->read(soundData, soundSize);
+ byte flags = Audio::Mixer::FLAG_AUTOFREE;
+ _mixer->playRaw(Audio::Mixer::kSFXSoundType, &_sfxHandle, soundData, soundSize, 11025, flags);
+ }
+ }
+}
+
+void AmigaSound::playModule(const char *base, int song) {
+ char name[20];
+
+ // load song/pattern data
+ uint32 sngDataSize;
+ sprintf(name, "%s.SNG", base);
+ uint8 *sngData = _vm->resource()->loadFile(name, 0, &sngDataSize);
+ Common::MemoryReadStream sngStr(sngData, sngDataSize);
+
+ // load instruments/wave data
+ uint32 insDataSize;
+ sprintf(name, "%s.INS", base);
+ uint8 *insData = _vm->resource()->loadFile(name, 0, &insDataSize);
+ Common::MemoryReadStream insStr(insData, insDataSize);
+
+ _mixer->stopHandle(_modHandle);
+ Audio::AudioStream *stream = Audio::makeRjp1Stream(&sngStr, &insStr, song, _mixer->getOutputRate());
+ if (stream) {
+ _mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_modHandle, stream);
+ }
+
+ delete[] sngData;
+ delete[] insData;
+
+ _fanfareCount = 0;
+}
+
+bool AmigaSound::playSpecialSfx(int16 sfx) {
+ switch (sfx) {
+ case 5: // normal volume
+ break;
+ case 15: // soft volume
+ break;
+ case 14: // medium volume
+ break;
+ case 25: // open door
+ playSound("116BSSSS");
+ break;
+ case 26: // close door
+ playSound("105ASSSS");
+ break;
+ case 56: // light switch
+ playSound("27SSSSSS");
+ break;
+ case 57: // hydraulic doors open
+ playSound("96SSSSSS");
+ break;
+ case 58: // hydraulic doors close
+ playSound("97SSSSSS");
+ break;
+ case 59: // metallic door slams
+ playSound("105SSSSS");
+ break;
+ case 63: // oracle rezzes in
+ playSound("132SSSSS");
+ break;
+ case 27: // cloth slide 1
+ playSound("135SSSSS");
+ break;
+ case 83: // splash
+ playSound("18SSSSSS");
+ break;
+ case 85: // agression enhancer
+ playSound("138BSSSS");
+ break;
+ case 68: // dino ray
+ playSound("138SSSSS");
+ break;
+ case 140: // dino transformation
+ playSound("55BSSSSS");
+ break;
+ case 141: // experimental laser
+ playSound("55SSSSSS");
+ break;
+ case 94: // plane hatch open
+ playSound("3SSSSSSS");
+ break;
+ case 95: // plane hatch close
+ playSound("4SSSSSSS");
+ break;
+ case 117: // oracle rezzes out
+ playSound("70SSSSSS");
+ break;
+ case 124: // dino horn
+ playSound("103SSSSS");
+ break;
+ case 127: // punch
+ playSound("128SSSSS");
+ break;
+ case 128: // body hits ground
+ playSound("129SSSSS");
+ break;
+ case 137: // explosion
+ playSound("88SSSSSS");
+ break;
+ case 86: // stone door grind 1
+ playSound("1001SSSS");
+ break;
+ case 188: // stone door grind 2
+ playSound("1002SSSS");
+ break;
+ case 28: // cloth slide 2
+ playSound("1005SSSS");
+ break;
+ case 151: // rattle bars
+ playSound("115SSSSS");
+ break;
+ case 152: // door dissolves
+ playSound("56SSSSSS");
+ break;
+ case 153: // altar slides
+ playSound("85SSSSSS");
+ break;
+ case 166 : // pull lever
+ playSound("1008SSSS");
+ break;
+ case 182: // zap Frank
+ playSound("1023SSSS");
+ break;
+ case 69: // splorch
+ playSound("137ASSSS");
+ break;
+ case 70: // robot laser
+ playSound("61SSSSSS");
+ break;
+ case 133: // pick hits stone
+ playSound("71SSSSSS");
+ break;
+ case 165: // press button
+ playSound("1007SSSS");
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
} //End of namespace Queen
diff --git a/engines/queen/sound.h b/engines/queen/sound.h
index 38dadd7ece..c93714e0d9 100644
--- a/engines/queen/sound.h
+++ b/engines/queen/sound.h
@@ -28,18 +28,12 @@
#include "sound/mods/rjp1.h"
#include "queen/defs.h"
-// define this to enable amiga "rjp1" modules playback
-//#define ENABLE_AMIGA_MUSIC 1
-
namespace Common {
class File;
}
namespace Queen {
-class Input;
-class Resource;
-
struct songData {
int16 tuneList[5];
int16 volume;
@@ -56,6 +50,7 @@ struct tuneData {
int16 delay;
};
+class Music;
class QueenEngine;
class Sound {
@@ -68,27 +63,33 @@ public:
*/
static Sound *makeSoundInstance(Audio::Mixer *mixer, QueenEngine *vm, uint8 compression);
- void playSfx(uint16 sfx);
- void playSpeech(const char *base);
- void playSong(int16 songNum);
+ virtual void playSfx(uint16 sfx) {}
+ virtual void playSong(int16 songNum) {}
+ virtual void playSpeech(const char *base) {}
+
+ virtual void stopSfx() {}
+ virtual void stopSong() {}
+ virtual void stopSpeech() {}
+
+ virtual bool isSpeechActive() const { return false; }
+ virtual bool isSfxActive() const { return false; }
+
+ virtual void setVolume(int vol) { _masterVolume = vol; }
+ virtual int volume() { return _masterVolume; }
+
void playLastSong() { playSong(_lastOverride); }
- void stopSpeech() { _mixer->stopHandle(_speechHandle); }
- void stopSfx() { _mixer->stopHandle(_sfxHandle); }
bool sfxOn() const { return _sfxToggle; }
void sfxToggle(bool val) { _sfxToggle = val; }
- void toggleSfx() { _sfxToggle ^= true; }
+ void toggleSfx() { _sfxToggle = !_sfxToggle; }
bool speechOn() const { return _speechToggle; }
void speechToggle(bool val) { _speechToggle = val; }
- void toggleSpeech() { _speechToggle ^= true; }
+ void toggleSpeech() { _speechToggle = !_speechToggle; }
bool musicOn() const { return _musicToggle; }
void musicToggle(bool val) { _musicToggle = val; }
- void toggleMusic() { _musicToggle ^= true; }
-
- bool isSpeechActive() const { return _mixer->isSoundHandleActive(_speechHandle); }
- bool isSfxActive() const { return _mixer->isSoundHandleActive(_sfxHandle); }
+ void toggleMusic() { _musicToggle = !_musicToggle; }
bool speechSfxExists() const { return _speechSfxExists; }
@@ -114,9 +115,6 @@ public:
#endif
protected:
- void waitFinished(bool isSpeech);
- void playSound(const char *base, bool isSpeech);
- virtual void playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle) = 0;
Audio::Mixer *_mixer;
QueenEngine *_vm;
@@ -127,12 +125,63 @@ protected:
bool _speechSfxExists;
int16 _lastOverride;
+ int _masterVolume;
+};
+
+class PCSound : public Sound {
+public:
+ PCSound(Audio::Mixer *mixer, QueenEngine *vm);
+ ~PCSound();
+
+ void playSfx(uint16 sfx);
+ void playSpeech(const char *base);
+ void playSong(int16 songNum);
+
+ void stopSfx() { _mixer->stopHandle(_sfxHandle); }
+ void stopSong();
+ void stopSpeech() { _mixer->stopHandle(_speechHandle); }
+
+ bool isSpeechActive() const { return _mixer->isSoundHandleActive(_speechHandle); }
+ bool isSfxActive() const { return _mixer->isSoundHandleActive(_sfxHandle); }
+
+ void setVolume(int vol);
+ int volume();
+
+protected:
+ void waitFinished(bool isSpeech);
+ void playSound(const char *base, bool isSpeech);
+
+ virtual void playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *soundHandle) = 0;
+
Audio::SoundHandle _sfxHandle;
Audio::SoundHandle _speechHandle;
-#ifdef ENABLE_AMIGA_MUSIC
- int16 _lastModuleOverride;
- Audio::SoundHandle _musicHandle;
-#endif
+ Music *_music;
+};
+
+class AmigaSound : public Sound {
+public:
+ AmigaSound(Audio::Mixer *mixer, QueenEngine *vm);
+
+ void playSfx(uint16 sfx);
+ void playSong(int16 song);
+
+ void stopSfx();
+ void stopSong();
+
+ void updateMusic();
+
+ bool isSfxActive() const { return false; }
+
+protected:
+
+ void playSound(const char *base);
+ void playModule(const char *base, int song);
+ bool playSpecialSfx(int16 sfx);
+
+ int16 _fanfareRestore;
+ int _fanfareCount, _fluteCount;
+ Audio::SoundHandle _modHandle;
+ Audio::SoundHandle _sfxHandle;
};
} // End of namespace Queen
diff --git a/engines/queen/talk.cpp b/engines/queen/talk.cpp
index 5d1cb6e447..17cf56d60b 100644
--- a/engines/queen/talk.cpp
+++ b/engines/queen/talk.cpp
@@ -350,9 +350,9 @@ byte *Talk::loadDialogFile(const char *filename) {
const char *filename;
Common::Language language;
} dogFiles[] = {
- { "chief1.dog", Common::FR_FRA },
- { "chief2.dog", Common::FR_FRA },
- { "bud1.dog", Common::IT_ITA }
+ { "CHIEF1.DOG", Common::FR_FRA },
+ { "CHIEF2.DOG", Common::FR_FRA },
+ { "BUD1.DOG", Common::IT_ITA }
};
for (int i = 0; i < ARRAYSIZE(dogFiles); ++i) {
if (!scumm_stricmp(filename, dogFiles[i].filename) &&
diff --git a/sound/mods/rjp1.cpp b/sound/mods/rjp1.cpp
index be0794cdc6..f2967181cb 100644
--- a/sound/mods/rjp1.cpp
+++ b/sound/mods/rjp1.cpp
@@ -82,7 +82,7 @@ public:
int instrumentsCount;
};
- Rjp1(int rate = 44100, bool stereo = true);
+ Rjp1(int rate, bool stereo);
virtual ~Rjp1();
bool load(Common::SeekableReadStream *songData, Common::SeekableReadStream *instrumentsData);
@@ -519,8 +519,8 @@ const int16 Rjp1::_periodsTable[] = {
const int Rjp1::_periodsCount = ARRAYSIZE(_periodsTable);
-AudioStream *makeRjp1Stream(Common::SeekableReadStream *songData, Common::SeekableReadStream *instrumentsData, int song) {
- Rjp1 *stream = new Rjp1;
+AudioStream *makeRjp1Stream(Common::SeekableReadStream *songData, Common::SeekableReadStream *instrumentsData, int song, int rate, bool stereo) {
+ Rjp1 *stream = new Rjp1(rate, stereo);
if (stream->load(songData, instrumentsData)) {
stream->startSong(song);
return stream;
diff --git a/sound/mods/rjp1.h b/sound/mods/rjp1.h
index ae36869a73..b9c9ab2a6c 100644
--- a/sound/mods/rjp1.h
+++ b/sound/mods/rjp1.h
@@ -29,7 +29,7 @@ namespace Audio {
class AudioStream;
-AudioStream *makeRjp1Stream(Common::SeekableReadStream *songData, Common::SeekableReadStream *instrumentsData, int song);
+AudioStream *makeRjp1Stream(Common::SeekableReadStream *songData, Common::SeekableReadStream *instrumentsData, int song, int rate = 44100, bool stereo = true);
} // End of namespace Audio
diff --git a/tools/qtable/fat_amiga_demo.h b/tools/qtable/fat_amiga_demo.h
new file mode 100644
index 0000000000..027fc83e78
--- /dev/null
+++ b/tools/qtable/fat_amiga_demo.h
@@ -0,0 +1,115 @@
+struct DataFileEntry fatAmigaDemo[] = {
+ { 1, 0x00000000, 0x0034AB, "ANDERSON.ACT" },
+ { 2, 0x00000000, 0x000346, "C11A.CUT" },
+ { 2, 0x00000346, 0x000ED4, "C39A.CUT" },
+ { 1, 0x000034AB, 0x0002B8, "C70A.CUT" },
+ { 1, 0x00003763, 0x000348, "C70B.CUT" },
+ { 2, 0x0000121A, 0x005006, "C70B.SAM" },
+ { 2, 0x00006220, 0x000292, "C70C.CUT" },
+ { 1, 0x00003AAB, 0x000952, "C70D.CUT" },
+ { 1, 0x000043FD, 0x00038C, "C70E.CUT" },
+ { 2, 0x000064B2, 0x000310, "C70F.CUT" },
+ { 2, 0x000067C2, 0x003639, "C70F.SAM" },
+ { 2, 0x00009DFB, 0x00030C, "C70G.CUT" },
+ { 2, 0x0000A107, 0x0054B9, "C70G.SAM" },
+ { 1, 0x00004789, 0x000322, "C70H.CUT" },
+ { 1, 0x00004AAB, 0x0003D8, "C70I.CUT" },
+ { 1, 0x00004E83, 0x000184, "C70J.CUT" },
+ { 1, 0x00005007, 0x0002C0, "C70K.CUT" },
+ { 1, 0x000052C7, 0x0002C0, "C70L.CUT" },
+ { 1, 0x00005587, 0x0002BA, "C70M.CUT" },
+ { 1, 0x00005841, 0x0002BA, "C70N.CUT" },
+ { 2, 0x0000F5C0, 0x000094, "C71A.CUT" },
+ { 2, 0x0000F654, 0x000094, "C71B.CUT" },
+ { 2, 0x0000F6E8, 0x0000B2, "C71C.CUT" },
+ { 2, 0x0000F79A, 0x000730, "C72A.CUT" },
+ { 2, 0x0000FECA, 0x000632, "C72B.CUT" },
+ { 2, 0x000104FC, 0x00007C, "C72C.CUT" },
+ { 2, 0x00010578, 0x00038A, "C73A.CUT" },
+ { 2, 0x00010902, 0x0002B8, "C73B.CUT" },
+ { 2, 0x00010BBA, 0x000192, "C73C.CUT" },
+ { 2, 0x00010D4C, 0x0000C8, "C73D.CUT" },
+ { 2, 0x00010E14, 0x000110, "C73E.CUT" },
+ { 2, 0x00010F24, 0x000110, "C73F.CUT" },
+ { 2, 0x00011034, 0x000210, "C73G.CUT" },
+ { 2, 0x00011244, 0x000786, "C74A.CUT" },
+ { 2, 0x000119CA, 0x00018C, "C74B.CUT" },
+ { 2, 0x00011B56, 0x0001DC, "C74C.CUT" },
+ { 2, 0x00011D32, 0x00018C, "C74D.CUT" },
+ { 2, 0x00011EBE, 0x0000E0, "C74F.CUT" },
+ { 2, 0x00011F9E, 0x000D00, "C75B.CUT" },
+ { 2, 0x00012C9E, 0x000072, "C76A.CUT" },
+ { 2, 0x00012D10, 0x000EEC, "C76B.CUT" },
+ { 2, 0x00013BFC, 0x0007E4, "C8A.CUT" },
+ { 2, 0x000143E0, 0x0001B8, "C8B.CUT" },
+ { 2, 0x00014598, 0x00017E, "C97A.CUT" },
+ { 2, 0x00014716, 0x00013C, "C97B.CUT" },
+ { 2, 0x00014852, 0x000094, "C99D.CUT" },
+ { 2, 0x000148E6, 0x0002E6, "C99E.CUT" },
+ { 2, 0x00014BCC, 0x0002E6, "C99F.CUT" },
+ { 2, 0x00014EB2, 0x0001FA, "C9A.CUT" },
+ { 2, 0x000150AC, 0x0000F8, "C9B.CUT" },
+ { 2, 0x000151A4, 0x000136, "C9C.CUT" },
+ { 2, 0x000152DA, 0x0000A0, "C9D.CUT" },
+ { 2, 0x0001537A, 0x0001F6, "CDCLO.CUT" },
+ { 2, 0x00015570, 0x0001F6, "CDRES.CUT" },
+ { 2, 0x00015766, 0x0035B4, "CHANGE.SAM" },
+ { 1, 0x00005AFB, 0x00176A, "CINTR.CUT" },
+ { 1, 0x00007265, 0x0000AA, "CLOGO.CUT" },
+ { 1, 0x0000730F, 0x0003AE, "CRED.CUT" },
+ { 1, 0x000076BD, 0x003D06, "CROWBAR.SAM" },
+ { 2, 0x00018D1A, 0x0001F6, "CUDRS.CUT" },
+ { 1, 0x0000B3C3, 0x003F22, "D1.BBK" },
+ { 1, 0x0000F2E5, 0x0068D2, "D1.LBM" },
+ { 1, 0x00015BB7, 0x00674C, "D1C.SAM" },
+ { 2, 0x00018F10, 0x002D36, "D2.BBK" },
+ { 2, 0x0001BC46, 0x006662, "D2.LBM" },
+ { 2, 0x000222A8, 0x00305A, "D3.BBK" },
+ { 2, 0x00025302, 0x0061B4, "D3.LBM" },
+ { 2, 0x0002B4B6, 0x004288, "D3.SAM" },
+ { 1, 0x0001C303, 0x00BD80, "D4.BBK" },
+ { 1, 0x00028083, 0x008352, "D4.LBM" },
+ { 2, 0x0002F73E, 0x00651C, "D9.BBK" },
+ { 2, 0x00035C5A, 0x008E56, "D9.LBM" },
+ { 2, 0x0003EAB0, 0x003997, "DEINO.ACT" },
+ { 2, 0x00042447, 0x002347, "DFRANK.ACT" },
+ { 2, 0x0004478E, 0x001331, "DISK1.SAM" },
+ { 2, 0x00045ABF, 0x008665, "FAYE.ACT" },
+ { 2, 0x0004E124, 0x00007A, "FAYE5.CUT" },
+ { 2, 0x0004E19E, 0x004947, "FRANK.ACT" },
+ { 2, 0x00052AE5, 0x000E48, "FRANK.DOG" },
+ { 2, 0x0005392D, 0x007530, "FRANK.INS" },
+ { 2, 0x0005AE5D, 0x000B05, "FRANK.SNG" },
+ { 2, 0x0005B962, 0x007C6F, "FRANK_H.ACT" },
+ { 2, 0x000635D1, 0x0089E1, "FRANK_H.BBK" },
+ { 2, 0x0006BFB2, 0x002EA6, "FRANK_H.LBM" },
+ { 2, 0x0006EE58, 0x002A12, "GOONS.ACT" },
+ { 2, 0x0007186A, 0x004C0B, "HENRY.ACT" },
+ { 1, 0x000303D5, 0x007530, "HOTEL.INS" },
+ { 1, 0x00037905, 0x000BAE, "HOTEL.SNG" },
+ { 2, 0x00076475, 0x004373, "JOED_A.BBK" },
+ { 2, 0x0007A7E8, 0x0048A5, "JOED_B.BBK" },
+ { 1, 0x000384B3, 0x003F8F, "JOEU_A.BBK" },
+ { 1, 0x0003C442, 0x004179, "JOEU_B.BBK" },
+ { 1, 0x000405BB, 0x003553, "JOE_A.BBK" },
+ { 1, 0x00043B0E, 0x00562B, "JOE_B.BBK" },
+ { 1, 0x00049139, 0x008726, "L1.LBM" },
+ { 2, 0x0007F08D, 0x001784, "LARIS.ACT" },
+ { 2, 0x00080811, 0x000F32, "LARIS.DOG" },
+ { 2, 0x00081743, 0x00079A, "LARIS3.DOG" },
+ { 2, 0x00081EDD, 0x00837C, "LOLA.ACT" },
+ { 2, 0x0008A259, 0x000AD6, "LOLA1.DOG" },
+ { 2, 0x0008AD2F, 0x0049C1, "N14.BBK" },
+ { 2, 0x0008F6F0, 0x006D24, "N14.LBM" },
+ { 2, 0x00096414, 0x01204F, "N14.SAM" },
+ { 1, 0x0005185F, 0x00F1B8, "OBJECTS.BBK" },
+ { 1, 0x00060A17, 0x001BD6, "PANEL.LBM" },
+ { 1, 0x000625ED, 0x0000DA, "PCLOGO.CUT" },
+ { 1, 0x000626C7, 0x0130D8, "QUEEN.JAS" },
+ { 1, 0x0007579F, 0x008A5D, "QUEEN2.JAS" },
+ { 1, 0x0007E1FC, 0x00468A, "RENEGADE.LBM" },
+ { 1, 0x00082886, 0x00526D, "SHEET.SAM" },
+ { 1, 0x00087AF3, 0x001D94, "T21.LBM" },
+ { 2, 0x000A8463, 0x00A727, "TABLET.BBK" },
+ { 2, 0x000B2B8A, 0x0069EA, "TABLET.LBM" }
+};
diff --git a/tools/qtable/fat_amiga_eng_floppy.h b/tools/qtable/fat_amiga_eng_floppy.h
new file mode 100644
index 0000000000..49895cd0eb
--- /dev/null
+++ b/tools/qtable/fat_amiga_eng_floppy.h
@@ -0,0 +1,763 @@
+struct DataFileEntry fatAmigaEngFl[] = {
+ { 11, 0x00000000, 0x00C012, "'JUNGLE'.INS" },
+ { 11, 0x0000C012, 0x000F60, "'JUNGLE'.SNG" },
+ { 11, 0x0000CF72, 0x005208, "1001SSSS.AMR" },
+ { 11, 0x0001217A, 0x004974, "1002SSSS.AMR" },
+ { 11, 0x00016AEE, 0x001E36, "1005SSSS.AMR" },
+ { 11, 0x00018924, 0x001304, "1007SSSS.AMR" },
+ { 11, 0x00019C28, 0x002DDC, "1008SSSS.AMR" },
+ { 11, 0x0001CA04, 0x003D11, "1023SSSS.AMR" },
+ { 11, 0x00020715, 0x005208, "103SSSSS.AMR" },
+ { 11, 0x0002591D, 0x001C96, "105ASSSS.AMR" },
+ { 11, 0x000275B3, 0x002470, "105SSSSS.AMR" },
+ { 11, 0x00029A23, 0x002512, "115SSSSS.AMR" },
+ { 11, 0x0002BF35, 0x0022E2, "116BSSSS.AMR" },
+ { 11, 0x0002E217, 0x000DC6, "128SSSSS.AMR" },
+ { 11, 0x0002EFDD, 0x000A94, "129SSSSS.AMR" },
+ { 11, 0x0002FA71, 0x005208, "132SSSSS.AMR" },
+ { 11, 0x00034C79, 0x00175A, "135SSSSS.AMR" },
+ { 11, 0x000363D3, 0x0017B8, "137ASSSS.AMR" },
+ { 11, 0x00037B8B, 0x005208, "138BSSSS.AMR" },
+ { 11, 0x0003CD93, 0x005208, "138SSSSS.AMR" },
+ { 11, 0x00041F9B, 0x001574, "18SSSSSS.AMR" },
+ { 11, 0x0004350F, 0x001032, "27SSSSSS.AMR" },
+ { 11, 0x00044541, 0x000C96, "3SSSSSSS.AMR" },
+ { 11, 0x000451D7, 0x000964, "4SSSSSSS.AMR" },
+ { 11, 0x00045B3B, 0x003D11, "55BSSSSS.AMR" },
+ { 11, 0x0004984C, 0x00449A, "55SSSSSS.AMR" },
+ { 11, 0x0004DCE6, 0x00519D, "56SSSSSS.AMR" },
+ { 11, 0x00052E83, 0x0050CF, "61SSSSSS.AMR" },
+ { 11, 0x00057F52, 0x005208, "70SSSSSS.AMR" },
+ { 11, 0x0005D15A, 0x000F35, "71SSSSSS.AMR" },
+ { 11, 0x0005E08F, 0x004402, "85SSSSSS.AMR" },
+ { 11, 0x00062491, 0x005207, "88SSSSSS.AMR" },
+ { 11, 0x00067698, 0x0050A2, "96SSSSSS.AMR" },
+ { 11, 0x0006C73A, 0x004904, "97SSSSSS.AMR" },
+ { 5, 0x00000000, 0x0040AF, "AMAZON.ACT" },
+ { 3, 0x00000000, 0x0009CA, "AND1.DOG" },
+ { 2, 0x00000000, 0x0034AB, "ANDERSON.ACT" },
+ { 6, 0x00000000, 0x0034AB, "ANDSON2.ACT" },
+ { 10, 0x00000000, 0x002FCD, "ANDSON_E.ACT" },
+ { 4, 0x00000000, 0x004E3D, "APE.ACT" },
+ { 4, 0x00004E3D, 0x0011D4, "APE.DOG" },
+ { 5, 0x000040AF, 0x0008DA, "APE2.DOG" },
+ { 5, 0x00004989, 0x000788, "APE3.DOG" },
+ { 11, 0x0007103E, 0x007530, "AWESTRUK.INS" },
+ { 11, 0x0007856E, 0x000C68, "AWESTRUK.SNG" },
+ { 11, 0x000791D6, 0x004322, "AZURA.INS" },
+ { 11, 0x0007D4F8, 0x0003A9, "AZURA.SNG" },
+ { 10, 0x00002FCD, 0x0029C5, "AZURA_E.ACT" },
+ { 6, 0x000034AB, 0x0052F2, "AZURA_H.ACT" },
+ { 6, 0x0000879D, 0x00B73A, "AZURA_H.BBK" },
+ { 6, 0x00013ED7, 0x006CE8, "AZURA_H.LBM" },
+ { 6, 0x0001ABBF, 0x003611, "B1.BBK" },
+ { 6, 0x0001E1D0, 0x00AF2C, "B1.LBM" },
+ { 4, 0x00006011, 0x0025E8, "B2.BBK" },
+ { 4, 0x000085F9, 0x00618E, "B2.LBM" },
+ { 5, 0x00005111, 0x0034D2, "BAT.SAM" },
+ { 5, 0x000085E3, 0x000470, "BEETLE.ACT" },
+ { 1, 0x00000000, 0x0012CD, "BIGAM.ACT" },
+ { 9, 0x00000000, 0x000148, "BLUEP.CUT" },
+ { 11, 0x0007D8A1, 0x007530, "BOB.INS" },
+ { 11, 0x00084DD1, 0x000960, "BOB.SNG" },
+ { 4, 0x0000E787, 0x0010BC, "BOB1.DOG" },
+ { 4, 0x0000F843, 0x000E5A, "BOB2.DOG" },
+ { 11, 0x00085731, 0x000DF8, "BOB3.DOG" },
+ { 4, 0x0001069D, 0x000DEA, "BOB4.DOG" },
+ { 4, 0x00011487, 0x000BF0, "BOB5.DOG" },
+ { 5, 0x00008A53, 0x002C93, "BUD.ACT" },
+ { 5, 0x0000B6E6, 0x00129C, "BUD1.DOG" },
+ { 5, 0x0000C982, 0x000C0E, "BUD2.DOG" },
+ { 4, 0x00012077, 0x001BCF, "C1.BBK" },
+ { 4, 0x00013C46, 0x003DC0, "C1.LBM" },
+ { 3, 0x000009CA, 0x00D81F, "C10.BBK" },
+ { 3, 0x0000E1E9, 0x006948, "C10.LBM" },
+ { 7, 0x00000000, 0x0003BE, "C100A.CUT" },
+ { 7, 0x000003BE, 0x000346, "C100B.CUT" },
+ { 7, 0x00000704, 0x00019A, "C100C.CUT" },
+ { 7, 0x0000089E, 0x000774, "C100D.CUT" },
+ { 8, 0x00000000, 0x00021A, "C101A.CUT" },
+ { 8, 0x0000021A, 0x0000E6, "C101B.CUT" },
+ { 8, 0x00000300, 0x000200, "C101C.CUT" },
+ { 8, 0x00000500, 0x000144, "C101D.CUT" },
+ { 8, 0x00000644, 0x000144, "C101E.CUT" },
+ { 9, 0x00000148, 0x00040E, "C102A.CUT" },
+ { 9, 0x00000556, 0x00040E, "C102B.CUT" },
+ { 9, 0x00000964, 0x00047E, "C102C.CUT" },
+ { 9, 0x00000DE2, 0x0003B8, "C102D.CUT" },
+ { 9, 0x0000119A, 0x00037E, "C102E.CUT" },
+ { 5, 0x0000D590, 0x0000B4, "C103A.CUT" },
+ { 5, 0x0000D644, 0x000104, "C103B.CUT" },
+ { 5, 0x0000D748, 0x000090, "C103C.CUT" },
+ { 5, 0x0000D7D8, 0x000070, "C103D.CUT" },
+ { 5, 0x0000D848, 0x0000DA, "C103E.CUT" },
+ { 5, 0x0000D922, 0x00084A, "C103F.CUT" },
+ { 5, 0x0000E16C, 0x00068E, "C103G.CUT" },
+ { 5, 0x0000E7FA, 0x0003BE, "C103H.CUT" },
+ { 5, 0x0000EBB8, 0x0001F2, "C103I.CUT" },
+ { 5, 0x0000EDAA, 0x00041C, "C103J.CUT" },
+ { 5, 0x0000F1C6, 0x00016A, "C103K.CUT" },
+ { 5, 0x0000F330, 0x000458, "C103L.CUT" },
+ { 2, 0x000034AB, 0x003DF0, "C11.BBK" },
+ { 2, 0x0000729B, 0x0052C8, "C11.LBM" },
+ { 6, 0x000290FC, 0x000346, "C11A.CUT" },
+ { 5, 0x0000F788, 0x0004D0, "C12A.CUT" },
+ { 6, 0x00029442, 0x000164, "C13A.CUT" },
+ { 6, 0x000295A6, 0x00016C, "C13B.CUT" },
+ { 6, 0x00029712, 0x0001FA, "C13C.CUT" },
+ { 6, 0x0002990C, 0x000174, "C13D.CUT" },
+ { 6, 0x00029A80, 0x0001D0, "C13E.CUT" },
+ { 6, 0x00029C50, 0x0002D6, "C13F.CUT" },
+ { 6, 0x00029F26, 0x000152, "C13G.CUT" },
+ { 6, 0x0002A078, 0x000116, "C13H.CUT" },
+ { 6, 0x0002A18E, 0x000080, "C13I.CUT" },
+ { 6, 0x0002A20E, 0x000272, "C13J.CUT" },
+ { 6, 0x0002A480, 0x000192, "C13K.CUT" },
+ { 6, 0x0002A612, 0x0001DC, "C13L.CUT" },
+ { 6, 0x0002A7EE, 0x000468, "C13M.CUT" },
+ { 6, 0x0002AC56, 0x00015E, "C13N.CUT" },
+ { 5, 0x0000FC58, 0x0002FE, "C14A.CUT" },
+ { 5, 0x0000FF56, 0x000126, "C14B.CUT" },
+ { 5, 0x0001007C, 0x000150, "C14C.CUT" },
+ { 5, 0x000101CC, 0x000108, "C14D.CUT" },
+ { 5, 0x000102D4, 0x000264, "C15A.CUT" },
+ { 5, 0x00010538, 0x000136, "C15B.CUT" },
+ { 5, 0x0001066E, 0x000380, "C15C.CUT" },
+ { 5, 0x000109EE, 0x0002D2, "C15D.CUT" },
+ { 5, 0x00010CC0, 0x0000F4, "C15E.CUT" },
+ { 5, 0x00010DB4, 0x0005D6, "C16A.CUT" },
+ { 5, 0x0001138A, 0x00057E, "C16B.CUT" },
+ { 1, 0x000012CD, 0x000156, "C17A.CUT" },
+ { 5, 0x00011908, 0x000A60, "C18A.CUT" },
+ { 5, 0x00012368, 0x0012B8, "C18B.CUT" },
+ { 5, 0x00013620, 0x001202, "C18C.CUT" },
+ { 5, 0x00014822, 0x0009FA, "C18D.CUT" },
+ { 5, 0x0001521C, 0x0009E4, "C18E.CUT" },
+ { 5, 0x00015C00, 0x001076, "C19A.CUT" },
+ { 5, 0x00016C76, 0x00015C, "C19B.CUT" },
+ { 4, 0x00017A06, 0x00034E, "C1A.CUT" },
+ { 4, 0x00017D54, 0x00366A, "C2.BBK" },
+ { 4, 0x0001B3BE, 0x0065A8, "C2.LBM" },
+ { 4, 0x00021966, 0x00468A, "C2.SAM" },
+ { 6, 0x0002ADB4, 0x000500, "C20A.CUT" },
+ { 6, 0x0002B2B4, 0x000168, "C20B.CUT" },
+ { 6, 0x0002B41C, 0x000170, "C20C.CUT" },
+ { 6, 0x0002B58C, 0x000388, "C20D.CUT" },
+ { 6, 0x0002B914, 0x000394, "C20E.CUT" },
+ { 6, 0x0002BCA8, 0x00073A, "C20F.CUT" },
+ { 6, 0x0002C3E2, 0x00029C, "C20G.CUT" },
+ { 4, 0x00025FF0, 0x0000DA, "C21A.CUT" },
+ { 4, 0x000260CA, 0x0000EE, "C21B.CUT" },
+ { 4, 0x000261B8, 0x00025E, "C21C.CUT" },
+ { 4, 0x00026416, 0x0002EC, "C21D.CUT" },
+ { 4, 0x00026702, 0x000602, "C21E.CUT" },
+ { 4, 0x00026D04, 0x0003E2, "C21F.CUT" },
+ { 4, 0x000270E6, 0x000136, "C21G.CUT" },
+ { 4, 0x0002721C, 0x000172, "C21H.CUT" },
+ { 4, 0x0002738E, 0x00024C, "C21I.CUT" },
+ { 4, 0x000275DA, 0x000122, "C21J.CUT" },
+ { 4, 0x000276FC, 0x000584, "C21K.CUT" },
+ { 4, 0x00027C80, 0x000522, "C21L.CUT" },
+ { 4, 0x000281A2, 0x0001EA, "C21M.CUT" },
+ { 4, 0x0002838C, 0x000610, "C21N.CUT" },
+ { 4, 0x0002899C, 0x0000F4, "C21O.CUT" },
+ { 4, 0x00028A90, 0x000150, "C21P.CUT" },
+ { 4, 0x00028BE0, 0x0002EC, "C21Q.CUT" },
+ { 4, 0x00028ECC, 0x000106, "C21R.CUT" },
+ { 4, 0x00028FD2, 0x00012A, "C21S.CUT" },
+ { 4, 0x000290FC, 0x00015E, "C21T.CUT" },
+ { 4, 0x0002925A, 0x0000C6, "C21U.CUT" },
+ { 5, 0x00016DD2, 0x000156, "C22A.CUT" },
+ { 5, 0x00016F28, 0x0000FC, "C22B.CUT" },
+ { 5, 0x00017024, 0x000166, "C22C.CUT" },
+ { 6, 0x0002C67E, 0x0000EC, "C24A.CUT" },
+ { 6, 0x0002C76A, 0x0005CA, "C24B.CUT" },
+ { 5, 0x0001718A, 0x0002D0, "C25A.CUT" },
+ { 5, 0x0001745A, 0x0002E4, "C25B.CUT" },
+ { 5, 0x0001773E, 0x00023E, "C25C.CUT" },
+ { 5, 0x0001797C, 0x000182, "C25D.CUT" },
+ { 5, 0x00017AFE, 0x000126, "C25E.CUT" },
+ { 5, 0x00017C24, 0x00017C, "C25F.CUT" },
+ { 5, 0x00017DA0, 0x0001E2, "C25G.CUT" },
+ { 5, 0x00017F82, 0x000218, "C25H.CUT" },
+ { 5, 0x0001819A, 0x0001DA, "C25I.CUT" },
+ { 5, 0x00018374, 0x00030E, "C26A.CUT" },
+ { 5, 0x00018682, 0x0000BE, "C26B.CUT" },
+ { 5, 0x00018740, 0x0001A4, "C26C.CUT" },
+ { 4, 0x00029320, 0x0008D0, "C2A.CUT" },
+ { 4, 0x00029BF0, 0x0004B8, "C2B.CUT" },
+ { 4, 0x0002A0A8, 0x00023E, "C2C.CUT" },
+ { 4, 0x0002A2E6, 0x0035E0, "C3.BBK" },
+ { 4, 0x0002D8C6, 0x006CF4, "C3.LBM" },
+ { 4, 0x000345BA, 0x004D3F, "C3.SAM" },
+ { 6, 0x0002CD34, 0x000254, "C30A.CUT" },
+ { 6, 0x0002CF88, 0x0003C4, "C30B.CUT" },
+ { 6, 0x0002D34C, 0x000722, "C30C.CUT" },
+ { 6, 0x0002DA6E, 0x000206, "C30D.CUT" },
+ { 6, 0x0002DC74, 0x000976, "C30E.CUT" },
+ { 6, 0x0002E5EA, 0x00010E, "C30F.CUT" },
+ { 6, 0x0002E6F8, 0x0001E6, "C30G.CUT" },
+ { 6, 0x0002E8DE, 0x00014C, "C30H.CUT" },
+ { 6, 0x0002EA2A, 0x00020C, "C31A.CUT" },
+ { 6, 0x0002EC36, 0x000596, "C31B.CUT" },
+ { 6, 0x0002F1CC, 0x0000E2, "C31C.CUT" },
+ { 6, 0x0002F2AE, 0x0004E4, "C31D.CUT" },
+ { 6, 0x0002F792, 0x0000EE, "C31E.CUT" },
+ { 6, 0x0002F880, 0x00010E, "C31F.CUT" },
+ { 6, 0x0002F98E, 0x0000AC, "C32A.CUT" },
+ { 6, 0x0002FA3A, 0x00010C, "C32B.CUT" },
+ { 6, 0x0002FB46, 0x0000E8, "C32C.CUT" },
+ { 4, 0x000392F9, 0x00042A, "C35A.CUT" },
+ { 4, 0x00039723, 0x0001C0, "C35B.CUT" },
+ { 8, 0x00000788, 0x00078C, "C36A.CUT" },
+ { 3, 0x00014B31, 0x000ED4, "C39A.CUT" },
+ { 4, 0x000398E3, 0x000610, "C3A.CUT" },
+ { 4, 0x00039EF3, 0x0000A0, "C3B.CUT" },
+ { 4, 0x00039F93, 0x0005D8, "C3C.CUT" },
+ { 4, 0x0003A56B, 0x000344, "C3D.CUT" },
+ { 4, 0x0003A8AF, 0x00013A, "C3E.CUT" },
+ { 4, 0x0003A9E9, 0x0000E0, "C3F.CUT" },
+ { 4, 0x0003AAC9, 0x000102, "C3G.CUT" },
+ { 4, 0x0003ABCB, 0x000120, "C3H.CUT" },
+ { 1, 0x00001423, 0x00366F, "C4.BBK" },
+ { 1, 0x00004A92, 0x0059E2, "C4.LBM" },
+ { 1, 0x0000A474, 0x000F9B, "C4.SAM" },
+ { 6, 0x0002FC2E, 0x00094A, "C40A.CUT" },
+ { 6, 0x00030578, 0x0002C2, "C40B.CUT" },
+ { 4, 0x0003ACEB, 0x000B84, "C41A.CUT" },
+ { 4, 0x0003B86F, 0x001BA0, "C41B.CUT" },
+ { 4, 0x0003D40F, 0x000170, "C41C.CUT" },
+ { 4, 0x0003D57F, 0x00025C, "C41D.CUT" },
+ { 4, 0x0003D7DB, 0x0001B8, "C41E.CUT" },
+ { 4, 0x0003D993, 0x00009C, "C41F.CUT" },
+ { 4, 0x0003DA2F, 0x0000FE, "C41G.CUT" },
+ { 4, 0x0003DB2D, 0x0000BA, "C41H.CUT" },
+ { 6, 0x0003083A, 0x0003CE, "C42A.CUT" },
+ { 6, 0x00030C08, 0x000802, "C42B.CUT" },
+ { 6, 0x0003140A, 0x0001AE, "C42C.CUT" },
+ { 6, 0x000315B8, 0x00010E, "C42D.CUT" },
+ { 6, 0x000316C6, 0x000106, "C42E.CUT" },
+ { 6, 0x000317CC, 0x000166, "C42F.CUT" },
+ { 7, 0x00001012, 0x0004F8, "C44A.CUT" },
+ { 7, 0x0000150A, 0x00079E, "C44B.CUT" },
+ { 7, 0x00001CA8, 0x00030A, "C44C.CUT" },
+ { 7, 0x00001FB2, 0x0000F8, "C45A.CUT" },
+ { 7, 0x000020AA, 0x0000F8, "C45B.CUT" },
+ { 7, 0x000021A2, 0x0000F8, "C45C.CUT" },
+ { 7, 0x0000229A, 0x0000F8, "C45D.CUT" },
+ { 7, 0x00002392, 0x000186, "C45E.CUT" },
+ { 7, 0x00002518, 0x0000F8, "C46A.CUT" },
+ { 7, 0x00002610, 0x0000F8, "C46B.CUT" },
+ { 7, 0x00002708, 0x0000F8, "C46C.CUT" },
+ { 7, 0x00002800, 0x0000F8, "C46D.CUT" },
+ { 7, 0x000028F8, 0x000640, "C47A.CUT" },
+ { 8, 0x00000F14, 0x000656, "C48A.CUT" },
+ { 8, 0x0000156A, 0x000516, "C48C.CUT" },
+ { 8, 0x00001A80, 0x000398, "C49B.CUT" },
+ { 8, 0x00001E18, 0x000132, "C49C.CUT" },
+ { 8, 0x00001F4A, 0x0004E4, "C49D.CUT" },
+ { 1, 0x0000B40F, 0x000094, "C4A.CUT" },
+ { 1, 0x0000B4A3, 0x0003F4, "C4B.CUT" },
+ { 4, 0x0003DBE7, 0x002A0A, "C5.BBK" },
+ { 4, 0x000405F1, 0x007016, "C5.LBM" },
+ { 4, 0x00047607, 0x0018D3, "C5.SAM" },
+ { 7, 0x00002F38, 0x0004F2, "C50A.CUT" },
+ { 7, 0x0000342A, 0x0001F8, "C50B.CUT" },
+ { 7, 0x00003622, 0x00086E, "C50C.CUT" },
+ { 7, 0x00003E90, 0x0000E2, "C50D.CUT" },
+ { 7, 0x00003F72, 0x000618, "C50E.CUT" },
+ { 7, 0x0000458A, 0x0003B8, "C50F.CUT" },
+ { 7, 0x00004942, 0x0008DA, "C50G.CUT" },
+ { 7, 0x0000521C, 0x0000BA, "C50H.CUT" },
+ { 7, 0x000052D6, 0x0009D4, "C50I.CUT" },
+ { 7, 0x00005CAA, 0x0000F2, "C50J.CUT" },
+ { 8, 0x0000242E, 0x00080E, "C51A.CUT" },
+ { 8, 0x00002C3C, 0x0001D8, "C51B.CUT" },
+ { 8, 0x00002E14, 0x0001D8, "C51C.CUT" },
+ { 8, 0x00002FEC, 0x0000EC, "C51D.CUT" },
+ { 8, 0x000030D8, 0x000566, "C53A.CUT" },
+ { 8, 0x0000363E, 0x00018A, "C53B.CUT" },
+ { 8, 0x000037C8, 0x00028C, "C54A.CUT" },
+ { 8, 0x00003A54, 0x0006C8, "C55A.CUT" },
+ { 8, 0x0000411C, 0x0003BA, "C56A.CUT" },
+ { 8, 0x000044D6, 0x000678, "C56B.CUT" },
+ { 8, 0x00004B4E, 0x0001CC, "C58A.CUT" },
+ { 9, 0x00001518, 0x00014A, "C59A.CUT" },
+ { 4, 0x00048EDA, 0x00040C, "C5A.CUT" },
+ { 4, 0x000492E6, 0x00050C, "C5C.CUT" },
+ { 4, 0x000497F2, 0x001C99, "C6.BBK" },
+ { 4, 0x0004B48B, 0x0065FE, "C6.LBM" },
+ { 4, 0x00051A89, 0x002C23, "C6.SAM" },
+ { 9, 0x00001662, 0x000170, "C60A.CUT" },
+ { 8, 0x00004D1A, 0x000170, "C61A.CUT" },
+ { 9, 0x000017D2, 0x000DDE, "C62A.CUT" },
+ { 9, 0x000025B0, 0x000268, "C62B.CUT" },
+ { 9, 0x00002818, 0x000164, "C62C.CUT" },
+ { 9, 0x0000297C, 0x0002A2, "C62D.CUT" },
+ { 9, 0x00002C1E, 0x0002D0, "C63A.CUT" },
+ { 9, 0x00002EEE, 0x00098E, "C63B.CUT" },
+ { 9, 0x0000387C, 0x0005D8, "C63C.CUT" },
+ { 9, 0x00003E54, 0x000194, "C63D.CUT" },
+ { 9, 0x00003FE8, 0x000336, "C63E.CUT" },
+ { 9, 0x0000431E, 0x00041A, "C63F.CUT" },
+ { 9, 0x00004738, 0x000170, "C63G.CUT" },
+ { 9, 0x000048A8, 0x00039A, "C63H.CUT" },
+ { 9, 0x00004C42, 0x0003AC, "C63I.CUT" },
+ { 9, 0x00004FEE, 0x0002F0, "C63J.CUT" },
+ { 9, 0x000052DE, 0x000634, "C63K.CUT" },
+ { 10, 0x00005992, 0x000128, "C64A.CUT" },
+ { 10, 0x00005ABA, 0x0002E8, "C66A.CUT" },
+ { 10, 0x00005DA2, 0x0005B6, "C67A.CUT" },
+ { 10, 0x00006358, 0x00054C, "C67B.CUT" },
+ { 10, 0x000068A4, 0x000700, "C69A.CUT" },
+ { 10, 0x00006FA4, 0x000670, "C69B.CUT" },
+ { 10, 0x00007614, 0x000688, "C69C.CUT" },
+ { 10, 0x00007C9C, 0x0006AC, "C69D.CUT" },
+ { 10, 0x00008348, 0x0009CC, "C69E.CUT" },
+ { 10, 0x00008D14, 0x000AA2, "C69F.CUT" },
+ { 10, 0x000097B6, 0x0019AC, "C69G.CUT" },
+ { 10, 0x0000B162, 0x00075A, "C69H.CUT" },
+ { 10, 0x0000B8BC, 0x0003F0, "C69I.CUT" },
+ { 10, 0x0000BCAC, 0x00008A, "C69J.CUT" },
+ { 10, 0x0000BD36, 0x0005C8, "C69K.CUT" },
+ { 10, 0x0000C2FE, 0x00062A, "C69L.CUT" },
+ { 10, 0x0000C928, 0x0005BA, "C69M.CUT" },
+ { 10, 0x0000CEE2, 0x00012C, "C69N.CUT" },
+ { 10, 0x0000D00E, 0x0001E4, "C69O.CUT" },
+ { 10, 0x0000D1F2, 0x0017A4, "C69Z.CUT" },
+ { 4, 0x000546AC, 0x000220, "C6A.CUT" },
+ { 4, 0x000548CC, 0x0000DA, "C6B.CUT" },
+ { 4, 0x000549A6, 0x000138, "C6C.CUT" },
+ { 2, 0x0000C563, 0x004E4E, "C7.BBK" },
+ { 2, 0x000113B1, 0x004CC0, "C7.LBM" },
+ { 2, 0x00016071, 0x0002B8, "C70A.CUT" },
+ { 2, 0x00016329, 0x000384, "C70B.CUT" },
+ { 2, 0x000166AD, 0x005006, "C70B.SAM" },
+ { 2, 0x0001B6B3, 0x000292, "C70C.CUT" },
+ { 2, 0x0001B945, 0x000952, "C70D.CUT" },
+ { 2, 0x0001C297, 0x00038C, "C70E.CUT" },
+ { 2, 0x0001C623, 0x00034C, "C70F.CUT" },
+ { 2, 0x0001C96F, 0x00356B, "C70F.SAM" },
+ { 2, 0x0001FEDA, 0x000348, "C70G.CUT" },
+ { 2, 0x00020222, 0x0054B7, "C70G.SAM" },
+ { 2, 0x000256D9, 0x000322, "C70H.CUT" },
+ { 2, 0x000259FB, 0x0003D8, "C70I.CUT" },
+ { 2, 0x00025DD3, 0x000184, "C70J.CUT" },
+ { 2, 0x00025F57, 0x0002C0, "C70K.CUT" },
+ { 2, 0x00026217, 0x0002C0, "C70L.CUT" },
+ { 2, 0x000264D7, 0x0002BA, "C70M.CUT" },
+ { 2, 0x00026791, 0x0002BA, "C70N.CUT" },
+ { 3, 0x00015A05, 0x000094, "C71A.CUT" },
+ { 3, 0x00015A99, 0x000094, "C71B.CUT" },
+ { 3, 0x00015B2D, 0x0000B2, "C71C.CUT" },
+ { 3, 0x00015BDF, 0x000730, "C72A.CUT" },
+ { 3, 0x0001630F, 0x000632, "C72B.CUT" },
+ { 3, 0x00016941, 0x00007C, "C72C.CUT" },
+ { 2, 0x00026A4B, 0x00038A, "C73A.CUT" },
+ { 2, 0x00026DD5, 0x0002B8, "C73B.CUT" },
+ { 2, 0x0002708D, 0x000192, "C73C.CUT" },
+ { 2, 0x0002721F, 0x0000C8, "C73D.CUT" },
+ { 2, 0x000272E7, 0x000330, "C73E.CUT" },
+ { 2, 0x00027617, 0x000344, "C73F.CUT" },
+ { 2, 0x0002795B, 0x000210, "C73G.CUT" },
+ { 3, 0x000169BD, 0x00075E, "C74A.CUT" },
+ { 3, 0x0001711B, 0x00018C, "C74B.CUT" },
+ { 3, 0x000172A7, 0x0001DC, "C74C.CUT" },
+ { 3, 0x00017483, 0x00018C, "C74D.CUT" },
+ { 3, 0x0001760F, 0x0000E0, "C74F.CUT" },
+ { 3, 0x000176EF, 0x000D00, "C75B.CUT" },
+ { 4, 0x00054ADE, 0x000072, "C76A.CUT" },
+ { 4, 0x00054B50, 0x000F28, "C76B.CUT" },
+ { 2, 0x00027B6B, 0x005173, "C8.BBK" },
+ { 2, 0x0002CCDE, 0x0060D0, "C8.LBM" },
+ { 5, 0x000188E4, 0x0007E4, "C8A.CUT" },
+ { 5, 0x000190C8, 0x0002A8, "C8B.CUT" },
+ { 2, 0x00032DAE, 0x004969, "C9.BBK" },
+ { 2, 0x00037717, 0x003DBE, "C9.LBM" },
+ { 7, 0x00005D9C, 0x00017E, "C97A.CUT" },
+ { 8, 0x00004E8A, 0x00013C, "C97B.CUT" },
+ { 7, 0x00005F1A, 0x000094, "C99D.CUT" },
+ { 7, 0x00005FAE, 0x0002E6, "C99E.CUT" },
+ { 7, 0x00006294, 0x0002E6, "C99F.CUT" },
+ { 5, 0x00019370, 0x0001FA, "C9A.CUT" },
+ { 5, 0x0001956A, 0x0000F8, "C9B.CUT" },
+ { 5, 0x00019662, 0x000136, "C9C.CUT" },
+ { 5, 0x00019798, 0x0000A0, "C9D.CUT" },
+ { 3, 0x000183EF, 0x0001F6, "CDCLO.CUT" },
+ { 3, 0x000185E5, 0x0001F6, "CDRES.CUT" },
+ { 3, 0x000187DB, 0x0035B2, "CHANGE.SAM" },
+ { 3, 0x0001BD8D, 0x0035B2, "CHANGE2.SAM" },
+ { 5, 0x00019838, 0x002872, "CHEF.ACT" },
+ { 5, 0x0001C0AA, 0x000AF0, "CHEF.DOG" },
+ { 4, 0x00055A78, 0x0009CA, "CHIEF1.DOG" },
+ { 4, 0x00056442, 0x00121E, "CHIEF2.DOG" },
+ { 4, 0x00057660, 0x000BE4, "CHIEF3.DOG" },
+ { 4, 0x00058244, 0x0002C4, "CHIEF4.DOG" },
+ { 10, 0x0000E996, 0x00034A, "CHORN.CUT" },
+ { 2, 0x0003B4D5, 0x0000AA, "CLOGO.CUT" },
+ { 8, 0x00004FC6, 0x000386, "CMASK.CUT" },
+ { 9, 0x00005912, 0x0003D8, "COCON.CUT" },
+ { 9, 0x00005CEA, 0x004EB5, "COCONUT.SAM" },
+ { 9, 0x0000AB9F, 0x00094E, "COMIC.CUT" },
+ { 10, 0x0000ECE0, 0x001BFB, "COMPY.ACT" },
+ { 2, 0x0003B57F, 0x000086, "COPY.CUT" },
+ { 2, 0x0003B605, 0x00521E, "COPY.LBM" },
+ { 2, 0x00040823, 0x0003AE, "CRED.CUT" },
+ { 2, 0x00040BD1, 0x000604, "CREDIT1.CRD" },
+ { 1, 0x0000B897, 0x0010D3, "CREDIT2.CRD" },
+ { 2, 0x000411D5, 0x003D02, "CROWBAR.SAM" },
+ { 3, 0x0001F33F, 0x0001F6, "CUDRS.CUT" },
+ { 2, 0x00044ED7, 0x003F22, "D1.BBK" },
+ { 2, 0x00048DF9, 0x0068D2, "D1.LBM" },
+ { 2, 0x0004F6CB, 0x00674C, "D1C.SAM" },
+ { 3, 0x0001F535, 0x002D36, "D2.BBK" },
+ { 3, 0x0002226B, 0x006662, "D2.LBM" },
+ { 3, 0x000288CD, 0x003058, "D3.BBK" },
+ { 3, 0x0002B925, 0x0061B4, "D3.LBM" },
+ { 3, 0x00031AD9, 0x00426E, "D3.SAM" },
+ { 2, 0x00055E17, 0x00BD80, "D4.BBK" },
+ { 2, 0x00061B97, 0x008352, "D4.LBM" },
+ { 3, 0x00035D47, 0x004962, "D5.BBK" },
+ { 3, 0x0003A6A9, 0x0041D2, "D5.LBM" },
+ { 3, 0x0003E87B, 0x0015AE, "D5.SAM" },
+ { 3, 0x0003FE29, 0x001133, "D5B.SAM" },
+ { 3, 0x00040F5C, 0x005527, "D6.BBK" },
+ { 3, 0x00046483, 0x0062CA, "D6.LBM" },
+ { 2, 0x00069EE9, 0x00651C, "D9.BBK" },
+ { 2, 0x00070405, 0x008E56, "D9.LBM" },
+ { 6, 0x00031932, 0x004A01, "DEATH.ACT" },
+ { 6, 0x00036333, 0x0017CA, "DEATH1.DOG" },
+ { 6, 0x00037AFD, 0x00081E, "DEATH2.DOG" },
+ { 10, 0x000108DB, 0x003997, "DEINO.ACT" },
+ { 1, 0x0000C96A, 0x002347, "DFRANK.ACT" },
+ { 8, 0x0000534C, 0x001331, "DISK1.SAM" },
+ { 5, 0x0001CB9A, 0x001317, "DOG.ACT" },
+ { 5, 0x0001DEB1, 0x00023A, "DOG.DOG" },
+ { 10, 0x00014272, 0x00A603, "E1.BBK" },
+ { 10, 0x0001E875, 0x00A3EA, "E1.LBM" },
+ { 1, 0x0000ECB1, 0x004E56, "E2.BBK" },
+ { 1, 0x00013B07, 0x0033DC, "E2.LBM" },
+ { 1, 0x00016EE3, 0x007AC5, "E3.BBK" },
+ { 1, 0x0001E9A8, 0x0025FC, "E3.LBM" },
+ { 5, 0x0001E0EB, 0x002F58, "F1.BBK" },
+ { 5, 0x00021043, 0x005616, "F1.LBM" },
+ { 5, 0x00026659, 0x005FCB, "F1.SAM" },
+ { 5, 0x0002C624, 0x00435D, "F2.BBK" },
+ { 5, 0x00030981, 0x0058F6, "F2.LBM" },
+ { 5, 0x00036277, 0x001AE5, "F3.BBK" },
+ { 5, 0x00037D5C, 0x007DFA, "F3.LBM" },
+ { 5, 0x0003FB56, 0x0051C2, "F3.SAM" },
+ { 1, 0x00020FA4, 0x006A7A, "F4.BBK" },
+ { 1, 0x00027A1E, 0x00AE2E, "F4.LBM" },
+ { 7, 0x0000657A, 0x00430D, "FALL.SAM" },
+ { 4, 0x00058508, 0x008665, "FAYE.ACT" },
+ { 4, 0x00060B6D, 0x00098E, "FAYE2.DOG" },
+ { 10, 0x00028C5F, 0x0005D8, "FAYE3.DOG" },
+ { 5, 0x00044D18, 0x000C40, "FAYE4.DOG" },
+ { 4, 0x000614FB, 0x00007A, "FAYE5.CUT" },
+ { 4, 0x00061575, 0x0009CE, "FAYE5.DOG" },
+ { 10, 0x00029237, 0x000466, "FAYE6.DOG" },
+ { 10, 0x0002969D, 0x001D45, "FAYE_E.ACT" },
+ { 4, 0x00061F43, 0x004B04, "FAYE_H.ACT" },
+ { 4, 0x00066A47, 0x006B19, "FAYE_H.BBK" },
+ { 4, 0x0006D560, 0x005B76, "FAYE_H.LBM" },
+ { 1, 0x0003284C, 0x0008D8, "FISH.ACT" },
+ { 11, 0x00086529, 0x007530, "FLODA.INS" },
+ { 11, 0x0008DA59, 0x000B9F, "FLODA.SNG" },
+ { 11, 0x0008E5F8, 0x007530, "FORT.INS" },
+ { 11, 0x00095B28, 0x000951, "FORT.SNG" },
+ { 3, 0x0004C74D, 0x004947, "FRANK.ACT" },
+ { 9, 0x0000B4ED, 0x000E48, "FRANK.DOG" },
+ { 11, 0x00096479, 0x007530, "FRANK.INS" },
+ { 11, 0x0009D9A9, 0x000B05, "FRANK.SNG" },
+ { 3, 0x00051094, 0x007C6F, "FRANK_H.ACT" },
+ { 3, 0x00058D03, 0x0089E1, "FRANK_H.BBK" },
+ { 3, 0x000616E4, 0x002EA6, "FRANK_H.LBM" },
+ { 8, 0x0000667D, 0x00397D, "GET_GEM.SAM" },
+ { 6, 0x0003831B, 0x00277B, "GET_HORN.SAM" },
+ { 7, 0x0000A887, 0x00009C, "GM.CUT" },
+ { 3, 0x0006458A, 0x002A12, "GOONS.ACT" },
+ { 6, 0x0003AA96, 0x00230E, "GUARDS.ACT" },
+ { 3, 0x00066F9C, 0x004C0B, "HENRY.ACT" },
+ { 6, 0x0003CDA4, 0x001280, "HENRY.DOG" },
+ { 6, 0x0003E024, 0x000B24, "HENRY2.DOG" },
+ { 10, 0x0002B3E2, 0x002615, "HORN.SAM" },
+ { 2, 0x0007925B, 0x007530, "HOTEL.INS" },
+ { 2, 0x0008078B, 0x000BAE, "HOTEL.SNG" },
+ { 7, 0x0000A923, 0x00462D, "IAN.ACT" },
+ { 7, 0x0000EF50, 0x000518, "IAN1.DOG" },
+ { 8, 0x00009FFA, 0x000A9A, "IAN2.DOG" },
+ { 5, 0x00045958, 0x00168F, "J1.BBK" },
+ { 5, 0x00046FE7, 0x005EF0, "J1.LBM" },
+ { 5, 0x0004CED7, 0x0042C2, "J1.SAM" },
+ { 5, 0x00051199, 0x000B2F, "J2.BBK" },
+ { 5, 0x00051CC8, 0x0060AA, "J2.LBM" },
+ { 5, 0x00057D72, 0x003D7E, "J2.SAM" },
+ { 5, 0x0005BAF0, 0x0019FB, "J3.BBK" },
+ { 5, 0x0005D4EB, 0x006CF0, "J3.LBM" },
+ { 5, 0x000641DB, 0x002CB6, "J4.BBK" },
+ { 5, 0x00066E91, 0x0062DC, "J4.LBM" },
+ { 5, 0x0006D16D, 0x003094, "J5.BBK" },
+ { 5, 0x00070201, 0x006280, "J5.LBM" },
+ { 5, 0x00076481, 0x0019AB, "J5.SAM" },
+ { 6, 0x0003EB48, 0x002539, "J6.BBK" },
+ { 6, 0x00041081, 0x006576, "J6.LBM" },
+ { 5, 0x00077E2C, 0x001ED4, "J7.BBK" },
+ { 5, 0x00079D00, 0x005848, "J7.LBM" },
+ { 5, 0x0007F548, 0x00461B, "J7.SAM" },
+ { 5, 0x00083B63, 0x001D7F, "J8.BBK" },
+ { 5, 0x000858E2, 0x005D2E, "J8.LBM" },
+ { 5, 0x0008B610, 0x00028C, "J8.SAM" },
+ { 7, 0x0000F468, 0x001D40, "JASPAR.ACT" },
+ { 6, 0x000475F7, 0x001276, "JIM1.DOG" },
+ { 6, 0x0004886D, 0x001282, "JIM2.DOG" },
+ { 6, 0x00049AEF, 0x000DF6, "JIM3.DOG" },
+ { 6, 0x0004A8E5, 0x004159, "JIMTAM.ACT" },
+ { 3, 0x0006BBA7, 0x004371, "JOED_A.BBK" },
+ { 3, 0x0006FF18, 0x0048A5, "JOED_B.BBK" },
+ { 2, 0x00081339, 0x003F8D, "JOEU_A.BBK" },
+ { 2, 0x000852C6, 0x004179, "JOEU_B.BBK" },
+ { 2, 0x0008943F, 0x003553, "JOE_A.BBK" },
+ { 2, 0x0008C992, 0x00562B, "JOE_B.BBK" },
+ { 10, 0x0002D9F7, 0x00241F, "JOE_E.ACT" },
+ { 6, 0x0004EA3E, 0x002D76, "JOHN.ACT" },
+ { 6, 0x000517B4, 0x00067C, "JOHN1.DOG" },
+ { 11, 0x0009E4AE, 0x005770, "JOURNAL.BBK" },
+ { 11, 0x000A3C1E, 0x0059DC, "JOURNAL.LBM" },
+ { 11, 0x000A95FA, 0x007530, "JUNG.INS" },
+ { 11, 0x000B0B2A, 0x0007EF, "JUNG.SNG" },
+ { 11, 0x000B1319, 0x007530, "JUNGLE.INS" },
+ { 11, 0x000B8849, 0x000F60, "JUNGLE.SNG" },
+ { 6, 0x00051E30, 0x006623, "KISS1.SAM" },
+ { 6, 0x00058453, 0x003066, "KLUNK.ACT" },
+ { 9, 0x0000C335, 0x000E6A, "KLUNK1.DOG" },
+ { 9, 0x0000D19F, 0x000ED0, "KLUNK2.DOG" },
+ { 8, 0x0000AA94, 0x008966, "KLUNK2.SAM" },
+ { 2, 0x00091FBD, 0x003F78, "L1.LBM" },
+ { 3, 0x000747BD, 0x001784, "LARIS.ACT" },
+ { 3, 0x00075F41, 0x000F32, "LARIS.DOG" },
+ { 3, 0x00076E73, 0x00079A, "LARIS3.DOG" },
+ { 1, 0x00033124, 0x000167, "LITTLEP.ACT" },
+ { 3, 0x0007760D, 0x00837C, "LOLA.ACT" },
+ { 3, 0x0007F989, 0x000AD6, "LOLA1.DOG" },
+ { 5, 0x0008B89C, 0x00242F, "LOU.ACT" },
+ { 5, 0x0008DCCB, 0x0010AC, "LOU1.DOG" },
+ { 5, 0x0008ED77, 0x000BAE, "LOU2.DOG" },
+ { 4, 0x000730D6, 0x0050AA, "M1.BBK" },
+ { 4, 0x00078180, 0x00DBE4, "M1.LBM" },
+ { 4, 0x00085D64, 0x000FDC, "M2.BBK" },
+ { 4, 0x00086D40, 0x004988, "M2.LBM" },
+ { 4, 0x0008B6C8, 0x0011E8, "M2.SAM" },
+ { 5, 0x0008F925, 0x00101E, "MAN1.DOG" },
+ { 5, 0x00090943, 0x0007A4, "MAN2.DOG" },
+ { 8, 0x000133FA, 0x0032CC, "MASK.SAM" },
+ { 5, 0x000910E7, 0x0028EC, "N1.BBK" },
+ { 5, 0x000939D3, 0x005D0E, "N1.LBM" },
+ { 9, 0x0000E06F, 0x00BB63, "N10.BBK" },
+ { 9, 0x00019BD2, 0x004CB6, "N10.LBM" },
+ { 9, 0x0001E888, 0x00BB63, "N10.SAM" },
+ { 8, 0x000166C6, 0x000DFB, "N11.BBK" },
+ { 8, 0x000174C1, 0x005224, "N11.LBM" },
+ { 6, 0x0005B4B9, 0x002D7B, "N12.BBK" },
+ { 6, 0x0005E234, 0x00612A, "N12.LBM" },
+ { 4, 0x0008C8B0, 0x003C1D, "N13.BBK" },
+ { 4, 0x000904CD, 0x004C04, "N13.LBM" },
+ { 4, 0x000950D1, 0x010C58, "N13.SAM" },
+ { 4, 0x000A5D29, 0x000F2A, "N13B.SAM" },
+ { 3, 0x0008045F, 0x0049BD, "N14.BBK" },
+ { 3, 0x00084E1C, 0x006D24, "N14.LBM" },
+ { 3, 0x0008BB40, 0x012049, "N14.SAM" },
+ { 9, 0x0002A3EB, 0x006E4E, "N15.LBM" },
+ { 6, 0x0006435E, 0x000C55, "N16.BBK" },
+ { 6, 0x00064FB3, 0x006EF0, "N16.LBM" },
+ { 6, 0x0006BEA3, 0x004CE4, "N2.BBK" },
+ { 6, 0x00070B87, 0x004568, "N2.LBM" },
+ { 5, 0x000996E1, 0x00392C, "N3.BBK" },
+ { 5, 0x0009D00D, 0x0052B0, "N3.LBM" },
+ { 5, 0x000A22BD, 0x006794, "N4.BBK" },
+ { 5, 0x000A8A51, 0x005438, "N4.LBM" },
+ { 5, 0x000ADE89, 0x0017C3, "N5.BBK" },
+ { 5, 0x000AF64C, 0x006488, "N5.LBM" },
+ { 6, 0x000750EF, 0x0016BC, "N6.BBK" },
+ { 6, 0x000767AB, 0x0054D6, "N6.LBM" },
+ { 4, 0x000A6C53, 0x001BEA, "N7.BBK" },
+ { 4, 0x000A883D, 0x006908, "N7.LBM" },
+ { 6, 0x0007BC81, 0x006373, "N8.BBK" },
+ { 6, 0x00081FF4, 0x0048FE, "N8.LBM" },
+ { 6, 0x000868F2, 0x009280, "N9.BBK" },
+ { 6, 0x0008FB72, 0x0062A4, "N9.LBM" },
+ { 6, 0x00095E16, 0x0065F1, "N9.SAM" },
+ { 4, 0x000AF145, 0x0013B6, "NAOMI.DOG" },
+ { 4, 0x000B04FB, 0x000A40, "NAOMI2.DOG" },
+ { 2, 0x00095F35, 0x00F186, "OBJECTS.BBK" },
+ { 7, 0x000111A8, 0x001DAB, "ORACLE.ACT" },
+ { 7, 0x00012F53, 0x001088, "ORACLE1.DOG" },
+ { 9, 0x00031239, 0x0003C0, "ORACLE2.DOG" },
+ { 9, 0x000315F9, 0x000806, "ORACLE3.DOG" },
+ { 2, 0x000A50BB, 0x001BD6, "PANEL.LBM" },
+ { 5, 0x000B5AD4, 0x00007A, "PRIN1.CUT" },
+ { 6, 0x0009C407, 0x000AEA, "PRIN1.DOG" },
+ { 6, 0x0009CEF1, 0x00055A, "PRIN2.DOG" },
+ { 6, 0x0009D44B, 0x000720, "PRIN4.DOG" },
+ { 5, 0x000B5B4E, 0x006249, "PRINCESS.ACT" },
+ { 4, 0x000B0F3B, 0x00387F, "PRISON.ACT" },
+ { 3, 0x0009DB89, 0x003077, "PUNCH.SAM" },
+ { 6, 0x0009DB6B, 0x003FEF, "PUSH.SAM" },
+ { 4, 0x000B47BA, 0x007E55, "PYGMY.ACT" },
+ { 1, 0x0003328B, 0x01371A, "QUEEN.JAS" },
+ { 1, 0x000469A5, 0x008C00, "QUEEN2.JAS" },
+ { 9, 0x00031DFF, 0x00815C, "R1.LBM" },
+ { 9, 0x00039F5B, 0x007BF8, "R2.LBM" },
+ { 9, 0x00041B53, 0x0081D6, "R3.LBM" },
+ { 9, 0x00049D29, 0x005B40, "R4.LBM" },
+ { 6, 0x000A1B5A, 0x0023E0, "RASH.SAM" },
+ { 2, 0x000A6C91, 0x003B80, "RENEGADE.LBM" },
+ { 11, 0x000B97A9, 0x007530, "ROBOT.INS" },
+ { 11, 0x000C0CD9, 0x000C2A, "ROBOT.SNG" },
+ { 9, 0x0004F869, 0x00817C, "ROCKET.INS" },
+ { 9, 0x000579E5, 0x008FCC, "ROCKET.SAM" },
+ { 9, 0x000609B1, 0x0004D9, "ROCKET.SNG" },
+ { 5, 0x000BBD97, 0x003150, "SEC.ACT" },
+ { 5, 0x000BEEE7, 0x001672, "SEC1.DOG" },
+ { 5, 0x000C0559, 0x000944, "SEC2.DOG" },
+ { 2, 0x000AA811, 0x00526D, "SHEET.SAM" },
+ { 1, 0x0004F5A5, 0x00394C, "SHOWER.ACT" },
+ { 1, 0x00052EF1, 0x0005FC, "SHOWERAM.DOG" },
+ { 5, 0x000C0E9D, 0x0020BB, "SKULL.ACT" },
+ { 3, 0x000A0C00, 0x007592, "SPARKY.ACT" },
+ { 4, 0x000BC60F, 0x000986, "SPARKY1.DOG" },
+ { 4, 0x000BCF95, 0x000402, "SPARKY2.DOG" },
+ { 4, 0x000BD397, 0x00126E, "SPARKY3.DOG" },
+ { 4, 0x000BE605, 0x00043A, "SPARKY4.DOG" },
+ { 4, 0x000BEA3F, 0x00091C, "SPARKY5.DOG" },
+ { 4, 0x000BF35B, 0x0007B6, "SPARKY6.DOG" },
+ { 4, 0x000BFB11, 0x00095E, "SPARKY7.DOG" },
+ { 4, 0x000C046F, 0x00072A, "SPARKY8.DOG" },
+ { 6, 0x000A3F3A, 0x00805A, "T1.BBK" },
+ { 6, 0x000ABF94, 0x0044F4, "T1.LBM" },
+ { 6, 0x000B0488, 0x00273F, "T1.SAM" },
+ { 8, 0x0001C6E5, 0x0073A0, "T10.BBK" },
+ { 8, 0x00023A85, 0x00B412, "T10.LBM" },
+ { 8, 0x0002EE97, 0x003B30, "T10.SAM" },
+ { 8, 0x000329C7, 0x0016D5, "T11.BBK" },
+ { 8, 0x0003409C, 0x005AD8, "T11.LBM" },
+ { 8, 0x00039B74, 0x003DD2, "T12.BBK" },
+ { 8, 0x0003D946, 0x004BB8, "T12.LBM" },
+ { 8, 0x000424FE, 0x005160, "T12.SAM" },
+ { 8, 0x0004765E, 0x002F84, "T13.BBK" },
+ { 8, 0x0004A5E2, 0x006446, "T13.LBM" },
+ { 8, 0x00050A28, 0x001F7B, "T14.BBK" },
+ { 8, 0x000529A3, 0x0059CA, "T14.LBM" },
+ { 8, 0x0005836D, 0x007DA0, "T14.SAM" },
+ { 8, 0x0006010D, 0x007EA9, "T15.BBK" },
+ { 8, 0x00067FB6, 0x005502, "T15.LBM" },
+ { 8, 0x0006D4B8, 0x0058D4, "T15.SAM" },
+ { 8, 0x00072D8C, 0x009EFD, "T15B.SAM" },
+ { 8, 0x0007CC89, 0x001856, "T16.BBK" },
+ { 8, 0x0007E4DF, 0x00503C, "T16.LBM" },
+ { 8, 0x0008351B, 0x0044EB, "T17.BBK" },
+ { 8, 0x00087A06, 0x0057BE, "T17.LBM" },
+ { 9, 0x00060E8A, 0x00488F, "T18.BBK" },
+ { 9, 0x00065719, 0x0056DA, "T18.LBM" },
+ { 9, 0x0006ADF3, 0x007073, "T19.BBK" },
+ { 9, 0x00071E66, 0x005BCE, "T19.LBM" },
+ { 9, 0x00077A34, 0x00C569, "T19.SAM" },
+ { 9, 0x00083F9D, 0x005431, "T1B.SAM" },
+ { 7, 0x00013FDB, 0x00206A, "T2.BBK" },
+ { 7, 0x00016045, 0x00930E, "T2.LBM" },
+ { 7, 0x0001F353, 0x003D1D, "T2.SAM" },
+ { 9, 0x000893CE, 0x0030B7, "T20.BBK" },
+ { 9, 0x0008C485, 0x00552A, "T20.LBM" },
+ { 9, 0x000919AF, 0x0040EC, "T20.SAM" },
+ { 9, 0x00095A9B, 0x003DCF, "T20B.SAM" },
+ { 8, 0x0008D1C4, 0x0076FC, "T21.LBM" },
+ { 9, 0x0009986A, 0x006622, "T22.LBM" },
+ { 7, 0x00023070, 0x00282D, "T23.BBK" },
+ { 7, 0x0002589D, 0x00626C, "T23.LBM" },
+ { 8, 0x000948C0, 0x006632, "T24.BBK" },
+ { 8, 0x0009AEF2, 0x005C64, "T24.LBM" },
+ { 7, 0x0002BB09, 0x00544E, "T25.BBK" },
+ { 7, 0x00030F57, 0x005B7C, "T25.LBM" },
+ { 7, 0x00036AD3, 0x00428D, "T25.SAM" },
+ { 7, 0x0003AD60, 0x0085C0, "T26.BBK" },
+ { 7, 0x00043320, 0x00A8AC, "T26.LBM" },
+ { 7, 0x0004DBCC, 0x0068DC, "T26A.SAM" },
+ { 8, 0x000A0B56, 0x005163, "T27.BBK" },
+ { 8, 0x000A5CB9, 0x005EDC, "T27.LBM" },
+ { 7, 0x000544A8, 0x0126F1, "T2B.SAM" },
+ { 7, 0x00066B99, 0x002BAC, "T3.BBK" },
+ { 7, 0x00069745, 0x0056DE, "T3.LBM" },
+ { 7, 0x0006EE23, 0x003AAE, "T3.SAM" },
+ { 7, 0x000728D1, 0x00227E, "T4.BBK" },
+ { 7, 0x00074B4F, 0x00519C, "T4.LBM" },
+ { 7, 0x00079CEB, 0x0012BE, "T5.BBK" },
+ { 7, 0x0007AFA9, 0x0058F8, "T5.LBM" },
+ { 7, 0x000808A1, 0x00363F, "T5.SAM" },
+ { 7, 0x00083EE0, 0x0064C2, "T5B.SAM" },
+ { 7, 0x0008A3A2, 0x0029A4, "T5C.SAM" },
+ { 7, 0x0008CD46, 0x004CEF, "T6.BBK" },
+ { 7, 0x00091A35, 0x0060F8, "T6.LBM" },
+ { 7, 0x00097B2D, 0x00802F, "T6A.SAM" },
+ { 7, 0x0009FB5C, 0x0082C8, "T6B.SAM" },
+ { 7, 0x000A7E24, 0x00B7E1, "T6C.SAM" },
+ { 9, 0x0009FE8C, 0x005BB7, "T7.BBK" },
+ { 9, 0x000A5A43, 0x0057A8, "T7.LBM" },
+ { 9, 0x000AB1EB, 0x00790D, "T7.SAM" },
+ { 8, 0x000ABB95, 0x001E37, "T8.BBK" },
+ { 8, 0x000AD9CC, 0x00591E, "T8.LBM" },
+ { 8, 0x000B32EA, 0x009700, "T8.SAM" },
+ { 8, 0x000BC9EA, 0x001D31, "T9.BBK" },
+ { 8, 0x000BE71B, 0x005EB0, "T9.LBM" },
+ { 8, 0x000C45CB, 0x005315, "T9.SAM" },
+ { 3, 0x000A8192, 0x00A8D1, "TABLET.BBK" },
+ { 3, 0x000B2A63, 0x0069EA, "TABLET.LBM" },
+ { 4, 0x000C0B99, 0x00034A, "TALLPYG.DOG" },
+ { 6, 0x000B2BC7, 0x001E8A, "TAM1.DOG" },
+ { 6, 0x000B4A51, 0x00076C, "TAM2.DOG" },
+ { 6, 0x000B51BD, 0x0007C2, "TAM3.DOG" },
+ { 6, 0x000B597F, 0x00083C, "TAM4.DOG" },
+ { 1, 0x000534ED, 0x00251A, "TEMPLE.ACT" },
+ { 11, 0x000C1903, 0x007530, "TEMPLE.INS" },
+ { 11, 0x000C8E33, 0x000B54, "TEMPLE.SNG" },
+ { 2, 0x000AFA7E, 0x00C8F2, "TITLE.INS" },
+ { 2, 0x000BC370, 0x000BE9, "TITLE.SNG" },
+ { 10, 0x0002FE16, 0x005016, "TMPD.ACT" },
+ { 4, 0x000C0EE3, 0x008B80, "TRADER.ACT" },
+ { 10, 0x00034E2C, 0x0047FD, "V1.BBK" },
+ { 10, 0x00039629, 0x005E88, "V1.LBM" },
+ { 10, 0x0003F4B1, 0x002812, "V1.SAM" },
+ { 10, 0x00041CC3, 0x004798, "V10.BBK" },
+ { 10, 0x0004645B, 0x00122A, "V10.LBM" },
+ { 10, 0x00047685, 0x004998, "V11.BBK" },
+ { 10, 0x0004C01D, 0x001296, "V11.LBM" },
+ { 10, 0x0004D2B3, 0x0048FB, "V2.BBK" },
+ { 10, 0x00051BAE, 0x003C58, "V2.LBM" },
+ { 10, 0x00055806, 0x005C10, "V3.BBK" },
+ { 10, 0x0005B416, 0x004310, "V3.LBM" },
+ { 10, 0x0005F726, 0x0035E1, "V4.BBK" },
+ { 10, 0x00062D07, 0x00A33E, "V4.LBM" },
+ { 10, 0x0006D045, 0x009C51, "V5.BBK" },
+ { 10, 0x00076C96, 0x00436E, "V5.LBM" },
+ { 10, 0x0007B004, 0x00EECB, "V5.SAM" },
+ { 10, 0x00089ECF, 0x0083DD, "V5B.SAM" },
+ { 10, 0x000922AC, 0x009CC4, "V5C.SAM" },
+ { 10, 0x0009BF70, 0x000746, "V5D.SAM" },
+ { 10, 0x0009C6B6, 0x006FAB, "V5E.SAM" },
+ { 10, 0x000A3661, 0x0090B3, "V5X.SAM" },
+ { 10, 0x000AC714, 0x005C10, "V6.BBK" },
+ { 10, 0x000B2324, 0x0051D2, "V6.LBM" },
+ { 10, 0x000B74F6, 0x00B386, "V7.BBK" },
+ { 10, 0x000C287C, 0x0065F8, "V7.LBM" },
+ { 5, 0x000C2F58, 0x004645, "VACUUM.SAM" },
+ { 1, 0x00055A07, 0x000418, "WATER.ACT" },
+ { 4, 0x000C9A63, 0x0015D5, "WEDGE.ACT" },
+ { 4, 0x000CB038, 0x0002C4, "WEDGE.DOG" },
+ { 9, 0x000B2AF8, 0x004484, "WEENIE.SAM" },
+ { 6, 0x000B61BB, 0x0012E4, "WITCH1.DOG" },
+ { 6, 0x000B749F, 0x00088E, "WITCH2.DOG" },
+ { 6, 0x000B7D2D, 0x000DF8, "WITCH3.DOG" },
+ { 6, 0x000B8B25, 0x0002B2, "WITCH4.DOG" },
+ { 7, 0x000B3605, 0x003E8A, "ZOMBIE.ACT" },
+ { 7, 0x000B748F, 0x000F6A, "ZOMBIE1.DOG" },
+ { 7, 0x000B83F9, 0x000C40, "ZOMBIE2.DOG" }
+};
diff --git a/tools/qtable/fat_amiga_interview.h b/tools/qtable/fat_amiga_interview.h
new file mode 100644
index 0000000000..1ea39df6cb
--- /dev/null
+++ b/tools/qtable/fat_amiga_interview.h
@@ -0,0 +1,70 @@
+struct DataFileEntry fatAmigaInterview[] = {
+ { 1, 0x00000000, 0x000A47, "CONTROL.BBK" },
+ { 1, 0x00000A47, 0x000944, "D1A.CUT" },
+ { 1, 0x0000138B, 0x0000AE, "D1B.CUT" },
+ { 1, 0x00001439, 0x00013E, "D1C.CUT" },
+ { 1, 0x00001577, 0x00015E, "D1D.CUT" },
+ { 1, 0x000016D5, 0x0001FE, "D1E.CUT" },
+ { 1, 0x000018D3, 0x0001EC, "D1F.CUT" },
+ { 1, 0x00001ABF, 0x00012E, "D1G.CUT" },
+ { 1, 0x00001BED, 0x00033A, "D1H.CUT" },
+ { 1, 0x00001F27, 0x00012C, "D1I.CUT" },
+ { 1, 0x00002053, 0x0000E2, "D1J.CUT" },
+ { 1, 0x00002135, 0x000128, "D1K.CUT" },
+ { 1, 0x0000225D, 0x0000BC, "D1L.CUT" },
+ { 1, 0x00002319, 0x0000CA, "D1M.CUT" },
+ { 1, 0x000023E3, 0x000154, "D1N.CUT" },
+ { 1, 0x00002537, 0x0000D4, "D1O.CUT" },
+ { 1, 0x0000260B, 0x000172, "D1P.CUT" },
+ { 1, 0x0000277D, 0x00015A, "D1Q.CUT" },
+ { 1, 0x000028D7, 0x0000F0, "D1R.CUT" },
+ { 1, 0x000029C7, 0x00024C, "D1Z.CUT" },
+ { 1, 0x00002C13, 0x00019A, "D2A.CUT" },
+ { 1, 0x00002DAD, 0x0001C2, "D2B.CUT" },
+ { 1, 0x00002F6F, 0x0000E8, "D2C.CUT" },
+ { 1, 0x00003057, 0x0000DE, "D2D.CUT" },
+ { 1, 0x00003135, 0x000178, "D2E.CUT" },
+ { 1, 0x000032AD, 0x00036C, "D3A.CUT" },
+ { 1, 0x00003619, 0x000330, "D3B.CUT" },
+ { 1, 0x00003949, 0x00039C, "D3C.CUT" },
+ { 1, 0x00003CE5, 0x005ACF, "FAYE-H.ACT" },
+ { 1, 0x000097B4, 0x006A9C, "FAYE-H.LBM" },
+ { 1, 0x00010250, 0x008665, "FAYE.ACT" },
+ { 1, 0x000188B5, 0x00007A, "FAYE1.CUT" },
+ { 1, 0x0001892F, 0x000C34, "FAYE1.DOG" },
+ { 1, 0x00019563, 0x00009C, "FAYE2.CUT" },
+ { 1, 0x000195FF, 0x003553, "JOE_A.BBK" },
+ { 1, 0x0001CB52, 0x00562B, "JOE_B.BBK" },
+ { 1, 0x0002217D, 0x00391F, "JOHN.ACT" },
+ { 1, 0x00025A9C, 0x00087C, "JOHN1.DOG" },
+ { 1, 0x00026318, 0x00091C, "JOHN2.DOG" },
+ { 1, 0x00026C34, 0x00111D, "OBJECTS.BBK" },
+ { 1, 0x00027D51, 0x001C3C, "PANEL.LBM" },
+ { 1, 0x0002998D, 0x000DA6, "QUEEN.JAS" },
+ { 1, 0x0002A733, 0x0012D4, "QUEEN2.JAS" },
+ { 1, 0x0002BA07, 0x0002A8, "START.CUT" },
+ { 1, 0x0002BCAF, 0x00330F, "STEVE.ACT" },
+ { 1, 0x0002EFBE, 0x0009A8, "STEVE1.DOG" },
+ { 1, 0x0002F966, 0x000CF0, "STEVE2.DOG" },
+ { 1, 0x00030656, 0x001BCB, "TONY.ACT" },
+ { 1, 0x00032221, 0x000D6A, "TONY1.DOG" },
+ { 1, 0x00032F8B, 0x0046DE, "Z0.LBM" },
+ { 1, 0x00037669, 0x0049C3, "Z1.BBK" },
+ { 1, 0x0003C02C, 0x008808, "Z1.LBM" },
+ { 1, 0x00044834, 0x002353, "Z2.BBK" },
+ { 1, 0x00046B87, 0x00B686, "Z2.LBM" },
+ { 1, 0x0005220D, 0x002824, "Z3.BBK" },
+ { 1, 0x00054A31, 0x007032, "Z3.LBM" },
+ { 1, 0x0005BA63, 0x00239C, "Z4.BBK" },
+ { 1, 0x0005DDFF, 0x005F82, "Z4.LBM" },
+ { 1, 0x00063D81, 0x001F84, "Z4.SAM" },
+ { 1, 0x00065D05, 0x005502, "Z5.LBM" },
+ { 1, 0x0006B207, 0x002D36, "Z6.BBK" },
+ { 1, 0x0006DF3D, 0x006662, "Z6.LBM" },
+ { 1, 0x0007459F, 0x003096, "Z7.BBK" },
+ { 1, 0x00077635, 0x006280, "Z7.LBM" },
+ { 1, 0x0007D8B5, 0x00673D, "Z8.BBK" },
+ { 1, 0x00083FF2, 0x0054C0, "Z8.LBM" },
+ { 1, 0x000894B2, 0x0025E8, "Z9.BBK" },
+ { 1, 0x0008BA9A, 0x00618E, "Z9.LBM" }
+};
diff --git a/tools/qtable/qtable.c b/tools/qtable/qtable.c
index 8844af2e8c..82885abbbf 100644
--- a/tools/qtable/qtable.c
+++ b/tools/qtable/qtable.c
@@ -65,6 +65,10 @@ typedef struct GameVersion {
#include "fat_pc_demo_pcgames.h"
#include "fat_pc_demo.h"
#include "fat_pc_interview.h"
+#include "fat_amiga_eng_floppy.h"
+#include "fat_amiga_demo.h"
+#include "fat_amiga_interview.h"
+
#define FAT(x) x, (sizeof(x)/sizeof(x[0]))
@@ -81,11 +85,14 @@ static GameVersion gameVersionsTable[] = {
{ "CHM10", 190705558, FAT(fatHebCd), 0 },
{ "PE100", 3724538, FAT(fatPCDemoPcGames), 0 },
{ "PE100", 3732177, FAT(fatPCDemo), 0 },
- { "PEint", 1915913, FAT(fatPCInterview), 0 }
+ { "PEint", 1915913, FAT(fatPCInterview), 0 },
+ { "aEM10", 351775, FAT(fatAmigaEngFl), 0 },
+ { "CE101", 563335, FAT(fatAmigaDemo), 0 },
+ { "PE100", 597032, FAT(fatAmigaInterview), 0 }
};
static const uint32 QTBL_TAG = 0x5154424C;
-static const uint32 CURRENT_VERSION = 1;
+static const uint32 CURRENT_VERSION = 2;
static void writeByte(FILE *fp, uint8 b) {
fwrite(&b, 1, 1, fp);
@@ -113,7 +120,7 @@ static void createTableFile(TableFile *tf) {
uint16 i, j;
uint32 offset; /* dump offset */
- /* setup file entries table */
+ /* setup file entries table */
assert(ARRAYSIZE(gameVersionsTable) < MAX_VERSIONS);
for (i = 0; i < ARRAYSIZE(gameVersionsTable); ++i) {
const GameVersion *gv = &gameVersionsTable[i];
@@ -121,7 +128,7 @@ static void createTableFile(TableFile *tf) {
tf->dataFileEntriesTable[i].fileEntriesCount = gv->dataFileEntriesCount;
}
tf->dataFileEntriesTableCount = ARRAYSIZE(gameVersionsTable);
-
+
/* write queen table file */
out = fopen(tf->outfile, "wb");
if (!out) {
@@ -129,7 +136,7 @@ static void createTableFile(TableFile *tf) {
return;
}
/* write header tag */
- writeUint32BE(out, QTBL_TAG);
+ writeUint32BE(out, QTBL_TAG);
/* write version */
writeUint32BE(out, CURRENT_VERSION);
/* write tables */