aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/create_igortbl/create_igortbl.c219
-rw-r--r--tools/create_igortbl/fsd_en_demo.h8
-rw-r--r--tools/create_igortbl/fsd_sp_cdrom.h175
-rw-r--r--tools/create_igortbl/resource_sp_cdrom.h129
-rw-r--r--tools/create_igortbl/strings.h3
5 files changed, 485 insertions, 49 deletions
diff --git a/tools/create_igortbl/create_igortbl.c b/tools/create_igortbl/create_igortbl.c
index 41bcaa5661..06f12d968d 100644
--- a/tools/create_igortbl/create_igortbl.c
+++ b/tools/create_igortbl/create_igortbl.c
@@ -1,30 +1,45 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <assert.h>
#include "../../engines/igor/resource_ids.h"
/*
uint32 : 'ITBL'
uint32 : version/tag
+ uint32 : offset to strings table
uint8 : number of game versions
repeat (number of game versions) {
uint32 : borland overlay size
- uint32 : offset to resource table
+ uint32 : offset to resources table
+ uint32 : offset to sounds table
}
- repeat (number of game versions) {
- repeat (number of resources tables) {
- uint16 : number of entries
- repeat (number of entries) {
- uint16 : id
- uint32 : offset
- uint32 : length
- }
+ repeat (number of resources tables) {
+ uint16 : number of entries
+ repeat (number of entries) {
+ uint16 : id
+ uint32 : offset
+ uint32 : length
+ }
+ }
+ repeat (number of sounds tables) {
+ uint16 : number of entries
+ repeat (number of entries) {
+ uint32 : offset
}
}
+ uint16 : number of strings
+ repeat (number of strings) {
+ uint8 : id
+ uint8 : language (0:any, 1:english, 2:spanish)
+ uint8 : strlen
+ char[] : string
+ }
*/
-#define MAX_VERSIONS 2
+#define MAX_TABLES 10
+#define TABLE_SIZE(x) (sizeof(x)/sizeof(x[0]))
typedef unsigned char uint8;
typedef unsigned short uint16;
@@ -36,29 +51,106 @@ struct ResourceEntry {
uint32 size;
};
-static const int _sizeOfResourceEntry = 10;
-
static const struct ResourceEntry _resourceEntriesEngDemo100[] = {
#include "resource_en_demo100.h"
- { 0, 0, 0 }
};
static const struct ResourceEntry _resourceEntriesEngDemo110[] = {
#include "resource_en_demo110.h"
- { 0, 0, 0 }
+};
+
+static const struct ResourceEntry _resourceEntriesSpaCd[] = {
+#include "resource_sp_cdrom.h"
+};
+
+static const struct {
+ const struct ResourceEntry *p;
+ int count;
+} _resourceEntriesList[] = {
+ { _resourceEntriesEngDemo100, TABLE_SIZE(_resourceEntriesEngDemo100) },
+ { _resourceEntriesEngDemo110, TABLE_SIZE(_resourceEntriesEngDemo110) },
+ { _resourceEntriesSpaCd, TABLE_SIZE(_resourceEntriesSpaCd) },
+ { 0, 0 }
+};
+
+static const uint32 _soundEntriesEngDemo[] = {
+#include "fsd_en_demo.h"
+};
+
+static const uint32 _soundEntriesSpaCd[] = {
+#include "fsd_sp_cdrom.h"
+};
+
+static const struct {
+ const uint32 *p;
+ int count;
+} _soundEntriesList[] = {
+ { _soundEntriesEngDemo, TABLE_SIZE(_soundEntriesEngDemo) },
+ { _soundEntriesSpaCd, TABLE_SIZE(_soundEntriesSpaCd) },
+ { 0, 0 }
+};
+
+enum {
+ STR_LANG_ANY = 0,
+ STR_LANG_ENG = 1,
+ STR_LANG_SPA = 2
+};
+
+struct StringEntry {
+ uint8 id;
+ uint8 language;
+ const char *str;
+};
+
+static const struct StringEntry _stringEntries[] = {
+#include "strings.h"
};
struct GameVersion {
uint32 borlandOverlaySize;
const struct ResourceEntry *resourceEntries;
+ const uint32 *soundEntries;
};
static const struct GameVersion _gameVersions[] = {
- { 4086790, &_resourceEntriesEngDemo100[0] },
- { 4094103, &_resourceEntriesEngDemo110[0] },
- { 0, 0 }
+ { 4086790, _resourceEntriesEngDemo100, _soundEntriesEngDemo },
+ { 4094103, _resourceEntriesEngDemo110, _soundEntriesEngDemo },
+ { 9115648, _resourceEntriesSpaCd, _soundEntriesSpaCd }
};
+static const uint32 ITBL_TAG = 0x4954424C;
+static const uint32 CURRENT_VERSION = 2;
+static const uint32 DEFAULT_OFFSET = 0x12345678;
+
+struct TablePtrOffset {
+ const void *p;
+ uint32 offset;
+};
+
+static int _tablePtrOffsetCount = 0;
+struct TablePtrOffset _tablePtrOffset[MAX_TABLES];
+
+static void addPtrOffset(FILE *fp, const void *p) {
+ assert(_tablePtrOffsetCount < MAX_TABLES);
+ _tablePtrOffset[_tablePtrOffsetCount].p = p;
+ _tablePtrOffset[_tablePtrOffsetCount].offset = ftell(fp);
+ ++_tablePtrOffsetCount;
+}
+
+static uint32 getPtrOffset(const void *p) {
+ int i;
+ uint32 fileOffset = 0;
+
+ for (i = 0; i < _tablePtrOffsetCount; ++i) {
+ if (_tablePtrOffset[i].p == p) {
+ fileOffset = _tablePtrOffset[i].offset;
+ break;
+ }
+ }
+ assert(fileOffset != 0);
+ return fileOffset;
+}
+
static void writeByte(FILE *fp, uint8 b) {
fwrite(&b, 1, 1, fp);
}
@@ -73,51 +165,80 @@ static void writeUint32BE(FILE *fp, uint32 value) {
writeUint16BE(fp, (uint16)(value & 0xFFFF));
}
-static void writeResourceEntry(FILE *fp, const struct ResourceEntry *re) {
- writeUint16BE(fp, re->id);
- writeUint32BE(fp, re->offs);
- writeUint32BE(fp, re->size);
+static void writeResourceEntriesTable(FILE *fp, const struct ResourceEntry *re, int count) {
+ int i;
+
+ writeUint16BE(fp, count);
+ for (i = 0; i < count; ++i, ++re) {
+ writeUint16BE(fp, re->id);
+ writeUint32BE(fp, re->offs);
+ writeUint32BE(fp, re->size);
+ }
}
-static const uint32 ITBL_TAG = 0x4954424C;
-static const uint32 CURRENT_VERSION = 1;
+static void writeSoundEntriesTable(FILE *fp, const uint32 *fsd, int count) {
+ int i;
-static void createTableFile(FILE *fp) {
- int i, j, gameVersionsCount;
- uint32 resourceEntriesTableSize[MAX_VERSIONS];
- uint32 resourceEntriesTableOffs[MAX_VERSIONS];
-
- /* get resource entries tables size */
- for (i = 0; _gameVersions[i].resourceEntries; ++i) {
- assert(i <= MAX_VERSIONS);
- resourceEntriesTableSize[i] = 0;
- for (j = 0; _gameVersions[i].resourceEntries[j].id != 0; ++j) {
- ++resourceEntriesTableSize[i];
- }
+ writeUint16BE(fp, count);
+ for (i = 0; i < count; ++i) {
+ writeUint32BE(fp, fsd[i]);
}
- gameVersionsCount = i;
+}
+
+static void writeStringEntriesTable(FILE *fp, const struct StringEntry *se, int count) {
+ int i, len;
+
+ writeUint16BE(fp, count);
+ for (i = 0; i < count; ++i, ++se) {
+ writeByte(fp, se->id);
+ writeByte(fp, se->language);
+ len = strlen(se->str);
+ assert(len < 256);
+ fwrite(se->str, 1, len, fp);
+ }
+}
+
+static void createTableFile(FILE *fp) {
+ int i, gameVersionsCount;
+
+ gameVersionsCount = TABLE_SIZE(_gameVersions);
/* header */
writeUint32BE(fp, ITBL_TAG);
writeUint32BE(fp, CURRENT_VERSION);
-
- /* game versions header */
+ writeUint32BE(fp, DEFAULT_OFFSET); /* strings table offset */
writeByte(fp, gameVersionsCount);
- resourceEntriesTableOffs[0] = 9 + gameVersionsCount * 8;
- for (i = 1; i < gameVersionsCount; ++i) {
- resourceEntriesTableOffs[i] = resourceEntriesTableOffs[i - 1] + 2 + resourceEntriesTableSize[i - 1] * _sizeOfResourceEntry;
- }
+
+ /* game versions */
for (i = 0; i < gameVersionsCount; ++i) {
writeUint32BE(fp, _gameVersions[i].borlandOverlaySize);
- writeUint32BE(fp, resourceEntriesTableOffs[i]);
+ writeUint32BE(fp, DEFAULT_OFFSET); /* resource table offset */
+ writeUint32BE(fp, DEFAULT_OFFSET); /* sound table offset */
}
- /* resource entries tables */
- for (i = 0; _gameVersions[i].resourceEntries; ++i) {
- writeUint16BE(fp, resourceEntriesTableSize[i]);
- for (j = 0; _gameVersions[i].resourceEntries[j].id != 0; ++j) {
- writeResourceEntry(fp, &_gameVersions[i].resourceEntries[j]);
- }
+ /* resources tables */
+ for (i = 0; _resourceEntriesList[i].p; ++i) {
+ addPtrOffset(fp, _resourceEntriesList[i].p);
+ writeResourceEntriesTable(fp, _resourceEntriesList[i].p, _resourceEntriesList[i].count);
+ }
+
+ /* sounds tables */
+ for (i = 0; _soundEntriesList[i].p; ++i) {
+ addPtrOffset(fp, _soundEntriesList[i].p);
+ writeSoundEntriesTable(fp, _soundEntriesList[i].p, _soundEntriesList[i].count);
+ }
+
+ /* strings table */
+ addPtrOffset(fp, _stringEntries);
+ writeStringEntriesTable(fp, _stringEntries, TABLE_SIZE(_stringEntries));
+
+ /* fix offsets */
+ fseek(fp, 8, SEEK_SET);
+ writeUint32BE(fp, getPtrOffset(_stringEntries));
+ for (i = 0; i < gameVersionsCount; ++i) {
+ fseek(fp, 17 + i * 12, SEEK_SET);
+ writeUint32BE(fp, getPtrOffset(_gameVersions[i].resourceEntries));
+ writeUint32BE(fp, getPtrOffset(_gameVersions[i].soundEntries));
}
}
diff --git a/tools/create_igortbl/fsd_en_demo.h b/tools/create_igortbl/fsd_en_demo.h
new file mode 100644
index 0000000000..5f05495446
--- /dev/null
+++ b/tools/create_igortbl/fsd_en_demo.h
@@ -0,0 +1,8 @@
+0x000000, 0x000001, 0x000002, 0x0018E4, 0x003301, 0x003302, 0x003303, 0x003304,
+0x003305, 0x003306, 0x003307, 0x003308, 0x003309, 0x003EEB, 0x005908, 0x005909,
+0x00590A, 0x01542C, 0x016418, 0x016419, 0x01D37F, 0x01E4A1, 0x01F42C, 0x01F95F,
+0x026B80, 0x026B81, 0x026B82, 0x026B83, 0x026B84, 0x026B85, 0x026B86, 0x026B87,
+0x026B88, 0x02CA59, 0x02DD76, 0x02ED6A, 0x02ED6B, 0x02ED6C, 0x02ED6D, 0x02ED6E,
+0x02ED6F, 0x02ED70, 0x02ED71, 0x02ED72, 0x02ED73, 0x047F4F, 0x047F50, 0x04AC64,
+0x04EFC5, 0x052755, 0x052756, 0x052988, 0x058119, 0x05811A, 0x06202A, 0x06202B,
+0x06202C, 0x06202D, 0x06202E, 0x06202F, 0x062030, 0x062031, 0x070CB2
diff --git a/tools/create_igortbl/fsd_sp_cdrom.h b/tools/create_igortbl/fsd_sp_cdrom.h
new file mode 100644
index 0000000000..ab4cec62b8
--- /dev/null
+++ b/tools/create_igortbl/fsd_sp_cdrom.h
@@ -0,0 +1,175 @@
+0x00000000, 0x0000389B, 0x00007136, 0x0000A62E, 0x0000D14D, 0x0000ED67, 0x00010EF1, 0x00015FE9,
+0x00019BED, 0x0001B9B5, 0x0001EEBF, 0x0002D8AB, 0x0003E6A9, 0x0003F28B, 0x0003FA71, 0x000421D8,
+0x00049770, 0x00049770, 0x0004DEAA, 0x0005799A, 0x0005799A, 0x0005C030, 0x0005FB21, 0x00064019,
+0x000721AE, 0x00075C75, 0x00086004, 0x000882A3, 0x0008EC00, 0x000947B7, 0x000AA97E, 0x000AC589,
+0x000B3710, 0x000BFC96, 0x000C3185, 0x000D3F38, 0x000DEFB2, 0x000F7BE5, 0x000FE9BF, 0x0010279A,
+0x00108F55, 0x0010F750, 0x00137731, 0x0015218E, 0x0017109E, 0x00195C3C, 0x00198865, 0x001B2083,
+0x001B5622, 0x001BAE8D, 0x001BAE8D, 0x001BB2DA, 0x001BB2DA, 0x001BB2DA, 0x001C51F6, 0x001E3AC6,
+0x001ED144, 0x0020494C, 0x002151AC, 0x0021DC41, 0x00223F69, 0x0022DFF7, 0x0023CC8A, 0x0023D0D7,
+0x0024CC0F, 0x0024EF89, 0x00250225, 0x0025236A, 0x002562EB, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002562EB, 0x00258EEA, 0x0025CC76,
+0x0025F1E8, 0x00263739, 0x00267E3B, 0x0026D886, 0x00271B45, 0x00275A31, 0x0027AE2A, 0x00281B73,
+0x00286C0F, 0x0028CC11, 0x00294F29, 0x0029AB14, 0x002A13B7, 0x002A7F7F, 0x002ADDCA, 0x002B2B99,
+0x002B80D1, 0x002BFDDE, 0x002C5ACA, 0x002CA9D6, 0x002CF42C, 0x002D2C03, 0x002D68C3, 0x002DBD34,
+0x002DE990, 0x002E256B, 0x002ECCAF, 0x002F2E45, 0x002F84C1, 0x00302DC1, 0x0030AB58, 0x00315870,
+0x0031EE0C, 0x00337507, 0x0033F4EF, 0x0034D167, 0x00357F2D, 0x00361D73, 0x0036A623, 0x003738EB,
+0x0037AF74, 0x003847D3, 0x00397260, 0x0039B53F, 0x003A860D, 0x003B12E2, 0x003B8051, 0x003C0167,
+0x003CF502, 0x003D3CFC, 0x003DD257, 0x003E13A5, 0x003E795F, 0x003F2953, 0x003FD007, 0x004098A6,
+0x00415A31, 0x00420B57, 0x0043BA62, 0x00441D94, 0x0044E70D, 0x0045180F, 0x0046B5DE, 0x00476CAB,
+0x00487702, 0x00492A30, 0x004A385F, 0x004AC5CE, 0x004BE57B, 0x004C99AF, 0x004D68BD, 0x004E0724,
+0x005007EA, 0x00519053, 0x0052CFAF, 0x0053E712, 0x00556525, 0x00563841, 0x00571D85, 0x0057CCA8,
+0x0058A3F2, 0x00590D15, 0x0059725A, 0x0059D8F5, 0x005A77CE, 0x005B09FE, 0x005B997F, 0x005C4845,
+0x005CC6B5, 0x005CF32B, 0x005D683C, 0x005DCD10, 0x005EAC1D, 0x005F1FDA, 0x005F5C7A, 0x005FC681,
+0x0060AF8F, 0x00620A08, 0x00626B46, 0x006347DD, 0x0064699E, 0x0064CD27, 0x00657491, 0x00667D74,
+0x0066E840, 0x00674296, 0x0067C0A1, 0x00683E1C, 0x0068AF93, 0x00694B3B, 0x006A1038, 0x006AAE76,
+0x006B4A7B, 0x006BFF65, 0x006CB30E, 0x006D5D2F, 0x006E0E2C, 0x006EA6C4, 0x006F491F, 0x006FB4BC,
+0x006FF055, 0x0070D348, 0x00715808, 0x0071BBFA, 0x007200D6, 0x00752FD2, 0x0075AC0A, 0x0075E845,
+0x0076BC42, 0x00776E7A, 0x00781DCE, 0x0078AD3B, 0x0079EF4B, 0x007AD5EC, 0x007B14EA, 0x007B8F1F,
+0x007CB7D3, 0x007D5C61, 0x007E39EA, 0x007E8D0A, 0x007EC07D, 0x00803525, 0x0082BE8A, 0x0083072A,
+0x00849330, 0x00854E38, 0x0085CC2C, 0x0086176D, 0x008693CF, 0x0086E743, 0x00879CE9, 0x0088527C,
+0x00892786, 0x0089ED3B, 0x008A6238, 0x008B9093, 0x008C172A, 0x008D14AC, 0x008D8F27, 0x008E4D2F,
+0x008EA409, 0x008FA528, 0x0090365B, 0x00906E9A, 0x00910D3F, 0x009186F9, 0x00922546, 0x0092D6B0,
+0x009378CF, 0x009413D2, 0x0094913D, 0x0094E41E, 0x0095555C, 0x0095C3FC, 0x0096398E, 0x0096AC28,
+0x00972761, 0x0097EA93, 0x009881AC, 0x009953CE, 0x009A438D, 0x009AD86F, 0x009B2E9C, 0x009B88BA,
+0x009BC845, 0x009CC44A, 0x009D5150, 0x009DBF5C, 0x009E515B, 0x009EA1B4, 0x009F2C02, 0x009F9B60,
+0x00A0495C, 0x00A0EB51, 0x00A19E57, 0x00A2876C, 0x00A39882, 0x00A41678, 0x00A4641A, 0x00A500A9,
+0x00A58786, 0x00A5F2D0, 0x00A78A9E, 0x00A87B53, 0x00A95618, 0x00AA353F, 0x00AB993F, 0x00ABC3A5,
+0x00AC62A5, 0x00ACF4E2, 0x00ADB3B2, 0x00AEA445, 0x00B081E1, 0x00B11E8D, 0x00B38EDA, 0x00B486A8,
+0x00B5C455, 0x00BA8DC1, 0x00BCC7EF, 0x00BE8202, 0x00BEE81E, 0x00BFCEF8, 0x00C0014F, 0x00C1963F,
+0x00C20C86, 0x00C2604D, 0x00C32159, 0x00C3E694, 0x00C49BE5, 0x00C5E5B7, 0x00C68631, 0x00C74AF9,
+0x00C7DA16, 0x00C868E5, 0x00C934FC, 0x00C9976F, 0x00CA3E80, 0x00CAA292, 0x00CAEB0D, 0x00CB4B8B,
+0x00CC2F5B, 0x00CCADB0, 0x00CD3693, 0x00CDD1EE, 0x00CE2359, 0x00CED11F, 0x00CF3DCD, 0x00CFB443,
+0x00D04753, 0x00D12989, 0x00D1F5F4, 0x00D2C157, 0x00D33A71, 0x00D42E5A, 0x00D46B32, 0x00D4D4F8,
+0x00D56C11, 0x00D6101F, 0x00D68CBA, 0x00D73BB4, 0x00D78291, 0x00D7F628, 0x00D883D9, 0x00D8C30F,
+0x00D94181, 0x00D9B768, 0x00DA2F85, 0x00DAB2AA, 0x00DB260F, 0x00DB6299, 0x00DC3976, 0x00DD45BB,
+0x00DE8FD5, 0x00DFCDEF, 0x00E040F0, 0x00E0D080, 0x00E14243, 0x00E1BC26, 0x00E271D6, 0x00E33059,
+0x00E3B378, 0x00E420CC, 0x00E48D52, 0x00E5A1C7, 0x00E69C6A, 0x00E6F237, 0x00E77128, 0x00E7AF6E,
+0x00E825D3, 0x00E8A059, 0x00E8FCB3, 0x00E99589, 0x00EB31DB, 0x00EB9202, 0x00EC3B10, 0x00ECADE9,
+0x00ED90B0, 0x00EE7657, 0x00EF092F, 0x00EF6C99, 0x00EF9E43, 0x00F057B3, 0x00F222B0, 0x00F2EBAB,
+0x00F3415C, 0x00F3A96D, 0x00F4709A, 0x00F55514, 0x00F61228, 0x00F6E246, 0x00F77081, 0x00F7D383,
+0x00F8881B, 0x00FA2559, 0x00FB4F2B, 0x00FBF49D, 0x00FD1566, 0x00FE30F9, 0x00FEF9A9, 0x00FF98DC,
+0x0100BDB7, 0x01011DB0, 0x0101DAB2, 0x0102970E, 0x0102CA15, 0x01030E27, 0x0103B1FA, 0x01046827,
+0x01051282, 0x01055FDF, 0x0105D177, 0x010741C8, 0x0107C01F, 0x01091815, 0x01097C92, 0x010A8E18,
+0x010AD64E, 0x010C1C94, 0x010DCEAB, 0x010E9E0A, 0x010F68A8, 0x0110213D, 0x0110BA7F, 0x01112247,
+0x0111BB13, 0x01129C45, 0x01134C76, 0x01140640, 0x0114CDBC, 0x01153E40, 0x0115E155, 0x01162D73,
+0x0116C108, 0x01172275, 0x0117BC59, 0x011839CE, 0x0118CEAA, 0x01197CD9, 0x011A40B3, 0x011B456E,
+0x011C0FAF, 0x011CD84B, 0x011DD309, 0x011E623B, 0x011F00BF, 0x011F6A0A, 0x012029CD, 0x0120C9B7,
+0x01219EE9, 0x01221674, 0x012266FD, 0x0124A3A8, 0x0125A235, 0x012606E0, 0x01274253, 0x0128A9BA,
+0x012A4BDB, 0x012C4BDD, 0x0130382B, 0x01308697, 0x013211CE, 0x0132CB15, 0x01333993, 0x013419A0,
+0x01349D9C, 0x01355C72, 0x01367450, 0x01374FC1, 0x0139CFAA, 0x013A7B93, 0x013DC4F0, 0x013E7BED,
+0x013F1605, 0x013FBB12, 0x01403274, 0x0140A7BD, 0x014121CC, 0x0141B0B5, 0x01423B22, 0x0142A176,
+0x014334E4, 0x0143C963, 0x01448943, 0x01457F98, 0x01463FD6, 0x01471CE2, 0x0148DBCF, 0x01497123,
+0x014A6291, 0x014B0486, 0x014B83FC, 0x014C1BC4, 0x014C560C, 0x014D03C9, 0x014DC603, 0x014EDCB8,
+0x014F7052, 0x0151325C, 0x01530305, 0x01548FB3, 0x01553071, 0x0155D421, 0x0156521D, 0x0156DDA1,
+0x01579F80, 0x01582C70, 0x0158A3DC, 0x0159232D, 0x0159A2C2, 0x015A6B2C, 0x015B194C, 0x015BE013,
+0x015C1B93, 0x015CA329, 0x015D18C4, 0x015DDAE8, 0x015E720A, 0x015EFD3D, 0x015FAB3A, 0x0160371A,
+0x016095E1, 0x016147E0, 0x0161F4F1, 0x0162CF2E, 0x016317E1, 0x0163E7D2, 0x01652C0B, 0x0165AC19,
+0x01663C7F, 0x0166C0DB, 0x01671F31, 0x01677503, 0x01681221, 0x0168A31E, 0x016923EC, 0x0169A911,
+0x0169FCD7, 0x016AA95A, 0x016BB4B8, 0x016C1862, 0x016CF45C, 0x016D859B, 0x016E23A2, 0x016F01DF,
+0x016F65C5, 0x016FFBF7, 0x01702D63, 0x0170F542, 0x0171E8A4, 0x017273C7, 0x017333D7, 0x0173AC69,
+0x01741DB2, 0x0174723C, 0x01752C05, 0x017613B3, 0x0177194F, 0x0177CC16, 0x017854A7, 0x017905A1,
+0x017987E6, 0x017A7B8C, 0x017B6C86, 0x017C2C5E, 0x017D0D6F, 0x017E1CBF, 0x017E5A7A, 0x017E8A6F,
+0x017EDDE2, 0x017F4FBF, 0x017FB374, 0x01802970, 0x01806C0E, 0x0180EC03, 0x0181417E, 0x01819E60,
+0x0182213B, 0x01828E4D, 0x0182CF0A, 0x01832B53, 0x018365C4, 0x0183C4D1, 0x01842220, 0x01845CCA,
+0x0184CFFB, 0x0185AD72, 0x0186449C, 0x018681D4, 0x01872E14, 0x0187FDA3, 0x0188B9E3, 0x0188FA10,
+0x01896B51, 0x0189DFCE, 0x018A9965, 0x018B70CF, 0x018C25E7, 0x018CA9CE, 0x018CFF5D, 0x018D5A6A,
+0x018D8FEE, 0x018DAD66, 0x018DFEC8, 0x018E45EF, 0x018E6790, 0x018F22DC, 0x01900277, 0x0190D186,
+0x0191A385, 0x0192653F, 0x0192B2EE, 0x01934F4D, 0x0193FE64, 0x0194ED24, 0x01955CD4, 0x0195979F,
+0x019623B0, 0x01972FE0, 0x0197B7E9, 0x019824C5, 0x01984433, 0x01987C94, 0x019A9057, 0x019B4A20,
+0x019D06BB, 0x019DC68B, 0x019E9F06, 0x019F13CA, 0x019F9A47, 0x01A02FC4, 0x01A0B4EB, 0x01A14A5F,
+0x01A273D5, 0x01A33BF0, 0x01A4352F, 0x01A55A5D, 0x01A6B328, 0x01A7B512, 0x01A95149, 0x01AA2B8C,
+0x01AB21DE, 0x01AB99BC, 0x01AC27A1, 0x01AD0577, 0x01AD8DF3, 0x01AE6E03, 0x01AFE2CE, 0x01B147C4,
+0x01B21E4D, 0x01B30AA8, 0x01B563F7, 0x01B8AD9F, 0x01BA1B2C, 0x01BC734F, 0x01BCC36C, 0x01BF8F29,
+0x01C04A7C, 0x01C0956F, 0x01C0D5EC, 0x01C18F59, 0x01C23DD5, 0x01C290F4, 0x01C326F3, 0x01C4B707,
+0x01C6EAAA, 0x01C82FDF, 0x01C8F5B5, 0x01CA0C3A, 0x01CB67C4, 0x01CC43F5, 0x01CC9F20, 0x01CD119F,
+0x01CD7672, 0x01CDF9A2, 0x01CE891A, 0x01CF36E0, 0x01D01C05, 0x01D0554F, 0x01D0EB0C, 0x01D147B0,
+0x01D17F16, 0x01D1D74B, 0x01D29987, 0x01D361DE, 0x01D41796, 0x01D4B527, 0x01D56640, 0x01D5F471,
+0x01D6D273, 0x01D746CC, 0x01D8146F, 0x01D8783D, 0x01D91939, 0x01D9C78F, 0x01DA8693, 0x01DB37A9,
+0x01DB841E, 0x01DBFEE9, 0x01DC659C, 0x01DCDB21, 0x01DD6345, 0x01DDE3DF, 0x01DE3FBA, 0x01DE8C25,
+0x01DF3F76, 0x01DFEE1D, 0x01E0368F, 0x01E091F6, 0x01E11C14, 0x01E17F1C, 0x01E2329B, 0x01E2929D,
+0x01E3A16C, 0x01E4CDE0, 0x01E61880, 0x01E6C219, 0x01E81112, 0x01E8D86B, 0x01E95E62, 0x01EA0312,
+0x01EA8D5B, 0x01EB3E78, 0x01EBE1B6, 0x01EDDBB6, 0x01EE6489, 0x01EF004D, 0x01EF8226, 0x01F06640,
+0x01F12647, 0x01F1CCE6, 0x01F2C8B3, 0x01F34FDD, 0x01F3AC85, 0x01F46D6D, 0x01F4EA3B, 0x01F5B4DB,
+0x01F6B62B, 0x01F72E1A, 0x01F7AFB1, 0x01F82601, 0x01F87BE8, 0x01F9AF24, 0x01FA1630, 0x01FA8433,
+0x01FB0131, 0x01FB66B4, 0x01FBBCD6, 0x01FC369F, 0x01FD535B, 0x01FED07B, 0x01FF7C14, 0x020108F8,
+0x020193D3, 0x0201F609, 0x0202C410, 0x02039781, 0x0203F529, 0x02049C13, 0x0204D48F, 0x02055FB9,
+0x02068E92, 0x0206EE85, 0x02073D55, 0x020770E3, 0x02081FDC, 0x02089A31, 0x02092945, 0x020A1178,
+0x020AAFD2, 0x020B354D, 0x020BE79E, 0x020C3E2D, 0x020CF672, 0x020DF203, 0x020E33C4, 0x020ECA26,
+0x020FD673, 0x02103CBA, 0x0210F178, 0x021179EA, 0x02125446, 0x021307CA, 0x0213FF71, 0x02148B68,
+0x02153D18, 0x0215CCFB, 0x021694AC, 0x02176970, 0x0217E0FE, 0x021854A4, 0x0218D096, 0x021915F5,
+0x02198172, 0x0219B930, 0x021A29D0, 0x021A8BBB, 0x021B22D1, 0x021BDA2F, 0x021CDA50, 0x021D5171,
+0x021DF008, 0x021EFBA3, 0x021F9AB7, 0x021FDD32, 0x0220E271, 0x0223001C, 0x02238AC0, 0x0224631B,
+0x0224A565, 0x022542A5, 0x02260BD5, 0x0226DDB8, 0x02273044, 0x022780F4, 0x0227FF6A, 0x0229676C,
+0x02299ACA, 0x022A1EF6, 0x022B6695, 0x022C6F14, 0x022D2465, 0x022E2503, 0x022E666C, 0x022E9814,
+0x022F33E9, 0x022FE3E0, 0x0230267D, 0x02309AA5, 0x023123F6, 0x0231D227, 0x02329C30, 0x023320A3,
+0x0233955A, 0x02345590, 0x0234FAA7, 0x0235F540, 0x02361E59, 0x02365A4E, 0x0236AFEB, 0x02377334,
+0x0238751A, 0x023960E3, 0x023A431E, 0x023B149B, 0x023BB74F, 0x023C5028, 0x023D809C, 0x023E8FEE,
+0x023F20ED, 0x023FED33, 0x0240B61F, 0x0241C490, 0x02427199, 0x02436945, 0x02446F5C, 0x02449917,
+0x0244EA60, 0x0245351D, 0x02458A26, 0x02462C58, 0x0246483B, 0x024667CE, 0x0246B66C, 0x02473FDC,
+0x02475F2A, 0x0248037E, 0x024905AE, 0x024995CC, 0x024A4478, 0x024AC460, 0x024B69A3, 0x024C7989,
+0x024D15B0, 0x024E6987, 0x024F312E, 0x024FF7AB, 0x0250C6BD, 0x02519535, 0x02522492, 0x0252B5B8,
+0x02537EB5, 0x0253E015, 0x02542CA2, 0x025521E3, 0x0255CC75, 0x02569ABF, 0x0257AA4A, 0x02583AAD,
+0x02595045, 0x025AA5DA, 0x025B9C9B, 0x025C802B, 0x025D5C2C, 0x025DAA3F, 0x025ED273, 0x02603727,
+0x02614F13, 0x02635C7B, 0x02652951, 0x026677EC, 0x0267F189, 0x0268CB37, 0x0269BFA4, 0x026ADA78,
+0x026C2754, 0x026CAFD8, 0x026DAF9D, 0x026EAE12, 0x026FF698, 0x02708762, 0x02710F9A, 0x0271E22F,
+0x02733BBB, 0x0273F98E, 0x0274D94A, 0x0275397A, 0x02765E58, 0x0276E66D, 0x0277BE78, 0x0278897F,
+0x0278EA4E, 0x0279DC65, 0x027B17A2, 0x027BD0B9, 0x027CFE22, 0x027E343E, 0x027F04AB, 0x02803B7A,
+0x0281129C, 0x0281F59D, 0x028281FF, 0x02839721, 0x02847BE3, 0x0285367B, 0x0285C3B8, 0x0286755A,
+0x0286F716, 0x02876BAE, 0x0287D763, 0x02884A52, 0x0288C975, 0x02891022, 0x02898301, 0x0289B9A7,
+0x028B27CC, 0x028B8F8A, 0x028DB6D9, 0x02905423, 0x029125D6, 0x02915320, 0x0291777F, 0x0291D75A,
+0x02935ABF, 0x0293D317, 0x02945FBA, 0x02950462, 0x0295787D, 0x029607BF, 0x0296C3AE, 0x029728C8,
+0x0297B33F, 0x02982CDE, 0x0298B805, 0x029A7345, 0x029AF080, 0x029C2347, 0x029C9652, 0x029CDCBC,
+0x029D394B, 0x029DCDF6, 0x029E4203, 0x029F2EB2, 0x02A07209, 0x02A11B6A, 0x02A1A75A, 0x02A21ACF,
+0x02A2830C, 0x02A2D7CF, 0x02A32984, 0x02A378F8, 0x02A40A4D, 0x02A4792A, 0x02A5513C, 0x02A5AC34,
+0x02A6737E, 0x02A72E9C, 0x02A7AC77, 0x02A7FE07, 0x02A86486, 0x02A8C2E1, 0x02A922E6, 0x02A9905F,
+0x02AA5BDC, 0x02AAB91A, 0x02AB7DD9, 0x02ABF2FD, 0x02AC7221, 0x02AEC7D4, 0x02AF833F, 0x02B09CEA,
+0x02B16679, 0x02B247B6, 0x02B374E0, 0x02B4761E, 0x02B50BE5, 0x02B6991F, 0x02B6F4D1, 0x02B83B46,
+0x02B982BA, 0x02BA6E2F, 0x02BB3FC0, 0x02BBAB63, 0x02BC7E16, 0x02BCF984, 0x02BDE5D8, 0x02BE8C9B,
+0x02BEF31A, 0x02BFA865, 0x02BFF484, 0x02C08864, 0x02C16B17, 0x02C1D56D, 0x02C26DA8, 0x02C32129,
+0x02C3C7E6, 0x02C43BCB, 0x02C4BAD4, 0x02C509A8, 0x02C5E4E1, 0x02C69201, 0x02C7D26F, 0x02C8A8E2,
+0x02C97226, 0x02C9D855, 0x02CA4881, 0x02CB185E, 0x02CBCCB5, 0x02CC12C9, 0x02CC8C05, 0x02CD3600,
+0x02CF2B8B, 0x02D05BCD, 0x02D11FEE, 0x02D23CEF, 0x02D3673E, 0x02D55953, 0x02D5F6D3, 0x02D6513B,
+0x02D69333, 0x02D731B3, 0x02D7EED3, 0x02D8D0CC, 0x02D93499, 0x02D9F1AB, 0x02DAA7B7, 0x02DB28AB,
+0x02DB87E0, 0x02DC91AC, 0x02DD2817, 0x02DE494A, 0x02DFA60F, 0x02E096E1, 0x02E1CAD2, 0x02E2E803,
+0x02E381B3, 0x02E42949, 0x02E4C396, 0x02E5A366, 0x02E5FCA7, 0x02E6C16B, 0x02E74B79, 0x02E869C6,
+0x02E90719, 0x02EAABAC, 0x02EB034D, 0x02EB8453, 0x02EC1112, 0x02EC72CC, 0x02ED9EBC, 0x02EE181D,
+0x02EE78CA, 0x02EF4686, 0x02F04E10, 0x02F11E1B, 0x02F176D6, 0x02F22796, 0x02F2DDC5, 0x02F3951E,
+0x02F429E2, 0x02F48FB9, 0x02F536CA, 0x02F5D15E, 0x02F69932, 0x02F764D1, 0x02F8186A, 0x02F8E6EF,
+0x02F99E7B, 0x02F9EC4D, 0x02FA57F3, 0x02FB2C78, 0x02FBB66C, 0x02FC5F7C, 0x02FD00BC, 0x02FDABDF,
+0x02FE2E89, 0x02FEFFDF, 0x02FF94A9, 0x02FFD5FB, 0x03005F21, 0x0300C1B6, 0x03012E9D, 0x030198CB,
+0x0301F4BE, 0x0302594C, 0x0302B864, 0x03031F36, 0x0303803F, 0x0303D40A, 0x0304394E, 0x03049D46,
+0x03050804, 0x03055479, 0x0305B53C, 0x03063476, 0x0306977F, 0x0306F2CB, 0x03079DAD, 0x0308328D,
+0x0308CC43, 0x03095169, 0x0309D62B, 0x030A4FAC, 0x030AC090, 0x030B6F48, 0x030C2B03, 0x030CD10C,
+0x030D6F76, 0x030E0892, 0x030EE5BD, 0x030F84B7, 0x03108C22, 0x0311224D, 0x03117972, 0x0311F52D,
+0x03126566, 0x0312D507, 0x03136F50, 0x031427F5, 0x031516D4, 0x0315B519, 0x03167812, 0x03171EF2,
+0x0317EDFD, 0x0318B191, 0x031954B4, 0x0319E6BC, 0x031A5986, 0x031B3405, 0x031BDD69, 0x031CCE81,
+0x031D524F, 0x031E437C, 0x031EF761, 0x031FB008, 0x0320BD69, 0x0321FC07, 0x03229992, 0x03239570,
+0x032440FE, 0x032513A2, 0x0325C205, 0x03263BBA, 0x0326FC95, 0x0327D2B9, 0x03288EC2, 0x03295398,
+0x032A015A, 0x032A6383, 0x032B3C73, 0x032BEF25, 0x032C9531, 0x032D570B, 0x032E13C9, 0x032EC9EC,
+0x032F56F1, 0x033010BF, 0x0330FABD, 0x03315260, 0x0331C9F3, 0x03329A01, 0x033397DA, 0x03342635,
+0x033466AA, 0x033564FA, 0x03362F5F, 0x03367432, 0x03370CC6, 0x0337C9A2, 0x03388450, 0x03398DE0,
+0x033AA843, 0x033B429F, 0x033C00BA, 0x033D5895, 0x033EADA3, 0x033F3F44, 0x03402E86, 0x03412F18,
+0x0342D61C, 0x03433558, 0x03442648, 0x034443FA, 0x0344B0DE, 0x0344E4CF, 0x0345AF5E, 0x0345EFEE,
+0x03465E91, 0x0346EA4D, 0x034797EB, 0x0348DDCD, 0x0349335C, 0x0349C9C1, 0x034A7167, 0x034AA3BC,
+0x034ADF3D, 0x034B1C86, 0x034BC9FC, 0x034C4053, 0x034D4C72, 0x034E7513, 0x034F2C86, 0x034FF2AF,
+0x0350DC18, 0x0351290B, 0x0351F343, 0x03529835, 0x03538765, 0x0353BEC8, 0x0353EBB3, 0x03547235,
+0x03551655, 0x0355956D, 0x03567B40, 0x035710F2, 0x0357A5BF, 0x0358584D, 0x03596C6B, 0x0359F993,
+0x035AD493, 0x035BAE2D, 0x035CD255, 0x035DA892, 0x035DE230, 0x035E3296, 0x035ECA66, 0x035F2D99,
+0x035FB284, 0x03605391, 0x0360B211, 0x0361129B, 0x0361AD95, 0x03623915, 0x0362E3CE, 0x036397B3,
+0x03647C45, 0x0365051B, 0x036540AD, 0x03667677, 0x03674BD2, 0x03677BC1, 0x0367D1F6, 0x03687B22,
+0x03691655, 0x036A5A00, 0x036A9F70, 0x036B152B, 0x036B4847, 0x036BE804, 0x036C666F, 0x036CD9CD,
+0x036D5D73, 0x036E67FE, 0x036EF80C, 0x036F85C3, 0x037028CC, 0x03719A74, 0x0372CF5D, 0x0373E91E,
+0x03745C12, 0x037509F0, 0x03758F54, 0x03769982, 0x03775F3B, 0x037800AC, 0x03796D3F, 0x0379FB7B,
+0x037A99DE, 0x037B514D, 0x037C2C5F, 0x037D197F, 0x037D7251, 0x037E1164, 0x037EC658, 0x037F1E9D,
+0x037FB90E, 0x03805AF1, 0x0380F25C, 0x0381994C, 0x0381C203, 0x0381FF6E, 0x0382B850, 0x0383BF3E,
+0x0384687C, 0x0384CB15, 0x0385AC30, 0x03861A0C, 0x038696B2, 0x03874D73, 0x0387B53A, 0x03895F1C,
+0x038A1039, 0x038AF204, 0x038C7F6D, 0x038D48A2, 0x038DE58F, 0x038E76D7, 0x038F6255, 0x03900188,
+0x0390A632, 0x03922200, 0x03935472, 0x0393A890, 0x0394801C, 0x03950A6F, 0x03959A22, 0x0395F6F1,
+0x03964BBC, 0x0396B5BE, 0x03974B4E, 0x03984580, 0x039929FA, 0x039A679E, 0x039B5769, 0x039BD9D2,
+0x039C504A, 0x039CCE46, 0x039DE754, 0x039F51DE, 0x039FD198, 0x03A066FC, 0x03A185F3, 0x03A1EAD3,
+0x03A2282C, 0x03A28D9C, 0x03A32AD7, 0x03A3B1BE, 0x03A3FAF0, 0x03A46FA7, 0x03A513CC, 0x03A617CD,
+0x03A6DB16, 0x03A81798, 0x03A85846, 0x03A90222, 0x03A9F226, 0x03AA4DF3, 0x03AA8AB9, 0x03ABDE84,
+0x03AC9DF3, 0x03AD341F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
diff --git a/tools/create_igortbl/resource_sp_cdrom.h b/tools/create_igortbl/resource_sp_cdrom.h
new file mode 100644
index 0000000000..f3f446b6de
--- /dev/null
+++ b/tools/create_igortbl/resource_sp_cdrom.h
@@ -0,0 +1,129 @@
+{ TXT_PhilipRoom, 0x1a4a75, 1191 },
+{ IMG_PhilipRoom, 0x1a4f1c, 46080 },
+{ PAL_PhilipRoom, 0x1b031c, 768 },
+{ MSK_PhilipRoom, 0x1b061c, 3 },
+{ BOX_PhilipRoom, 0x1b061f, 1280 },
+{ DAT_CollegeStairsSecondFloor, 0x407c47, 6393 },
+{ FRM_CollegeStairsSecondFloor1, 0x40b7a3, 2756 },
+{ FRM_CollegeStairsSecondFloor2, 0x40c267, 11136 },
+{ FRM_CollegeStairsSecondFloor3, 0x40ede7, 6665 },
+{ TXT_CollegeStairsSecondFloor, 0x410fb3, 1564 },
+{ IMG_CollegeStairsSecondFloor, 0x4115cf, 46080 },
+{ PAL_CollegeStairsSecondFloor, 0x41c9cf, 624 },
+{ MSK_CollegeStairsSecondFloor, 0x41cc3f, 4128 },
+{ BOX_CollegeStairsSecondFloor, 0x41dc5f, 1280 },
+{ DAT_CollegeStairsFirstFloor, 0x4219b4, 6017 },
+{ FRM_CollegeStairsFirstFloor1, 0x428c70, 48790 },
+{ FRM_CollegeStairsFirstFloor2, 0x434b06, 140 },
+{ TXT_CollegeStairsFirstFloor, 0x4352b3, 1226 },
+{ IMG_CollegeStairsFirstFloor, 0x43577d, 46080 },
+{ PAL_CollegeStairsFirstFloor, 0x440b7d, 624 },
+{ MSK_CollegeStairsFirstFloor, 0x440ded, 2934 },
+{ BOX_CollegeStairsFirstFloor, 0x441963, 1280 },
+{ DAT_CollegeCorridorMissBarrymore, 0x4454c7, 6137 },
+{ FRM_CollegeCorridorMissBarrymore1, 0x448da3, 3250 },
+{ FRM_CollegeCorridorMissBarrymore2, 0x449a55, 5280 },
+{ FRM_CollegeCorridorMissBarrymore3, 0x44aef5, 10824 },
+{ DAT_CollegeCorridorAnnouncementBoard, 0x45de90, 5973 },
+{ FRM_CollegeCorridorAnnouncementBoard1, 0x461570, 2392 },
+{ FRM_CollegeCorridorAnnouncementBoard2, 0x461ec8, 6944 },
+{ TXT_CollegeCorridorAnnouncementBoard, 0x465ba2, 1216 },
+{ IMG_CollegeCorridorAnnouncementBoard, 0x466062, 46080 },
+{ PAL_CollegeCorridorAnnouncementBoard, 0x471462, 624 },
+{ MSK_CollegeCorridorAnnouncementBoard, 0x4716d2, 3117 },
+{ BOX_CollegeCorridorAnnouncementBoard, 0x4722ff, 1280 },
+{ DAT_CollegeCorridorSharonMichael, 0x4752aa, 5993 },
+{ FRM_CollegeCorridorSharonMichael1, 0x4789d6, 3630 },
+{ FRM_CollegeCorridorSharonMichael2, 0x479804, 7752 },
+{ FRM_CollegeCorridorSharonMichael3, 0x47b64c, 5676 },
+{ FRM_CollegeCorridorSharonMichael4, 0x47cc78, 6762 },
+{ TXT_CollegeCorridorSharonMichael, 0x47eea2, 1331 },
+{ IMG_CollegeCorridorSharonMichael, 0x47f3d5, 46080 },
+{ PAL_CollegeCorridorSharonMichael, 0x48a7d5, 624 },
+{ MSK_CollegeCorridorSharonMichael, 0x48aa45, 3144 },
+{ BOX_CollegeCorridorSharonMichael, 0x48b68d, 1280 },
+{ DAT_CollegeCorridorCaroline, 0x48f747, 6509 },
+{ FRM_CollegeCorridorCaroline1, 0x4934a3, 25080 },
+{ FRM_CollegeCorridorCaroline3, 0x49969b, 7595 },
+{ FRM_CollegeCorridorCaroline2, 0x49b446, 270 },
+{ TXT_CollegeCorridorCaroline, 0x49bcb3, 2026 },
+{ IMG_CollegeCorridorCaroline, 0x49c49d, 46080 },
+{ PAL_CollegeCorridorCaroline, 0x4a789d, 624 },
+{ MSK_CollegeCorridorCaroline, 0x4a7b0d, 2151 },
+{ DAT_CollegeCorridorLucas, 0x4ab255, 6109 },
+{ TXT_CollegeCorridorLucas, 0x4b2fa2, 1333 },
+{ IMG_CollegeCorridorLucas, 0x4b34d7, 46080 },
+{ PAL_CollegeCorridorLucas, 0x4be8d7, 624 },
+{ MSK_CollegeCorridorLucas, 0x4beb47, 3297 },
+{ BOX_CollegeCorridorLucas, 0x4bf828, 1280 },
+{ DAT_CollegeCorridorMargaret, 0x4c2ff1, 6273 },
+{ FRM_CollegeCorridorMargaret1, 0x4cb3d6, 5346 },
+{ FRM_CollegeCorridorMargaret2, 0x4cc8b8, 44247 },
+{ FRM_CollegeCorridorMargaret3, 0x4d758f, 7800 },
+{ FRM_CollegeCorridorMargaret4, 0x4d9407, 3564 },
+{ TXT_CollegeCorridorMargaret, 0x4da9b3, 1559 },
+{ IMG_CollegeCorridorMargaret, 0x4dafca, 46080 },
+{ PAL_CollegeCorridorMargaret, 0x4e63ca, 624 },
+{ MSK_CollegeCorridorMargaret, 0x4e663a, 3690 },
+{ BOX_CollegeCorridorMargaret, 0x4e74a4, 1280 },
+{ DAT_CollegeLockers, 0x4ea1c7, 6437 },
+{ FRM_CollegeLockers1, 0x4edba3, 2496 },
+{ FRM_CollegeLockers2, 0x4ee563, 4704 },
+{ FRM_CollegeLockers3, 0x4ef7c3, 1260 },
+{ TXT_CollegeLockers, 0x4f17a2, 1561 },
+{ IMG_CollegeLockers, 0x4f1dbb, 46080 },
+{ PAL_CollegeLockers, 0x4fd1bb, 624 },
+{ MSK_CollegeLockers, 0x4fd42b, 2235 },
+{ BOX_CollegeLockers, 0x4fdce6, 1280 },
+{ DAT_WomenToilets, 0x508bfe, 6385 },
+{ FRM_WomenToilets1, 0x50c907, 854 },
+{ FRM_WomenToilets2, 0x50cc5d, 12 },
+{ FRM_WomenToilets3, 0x50cc69, 2744 },
+{ FRM_WomenToilets4, 0x50d721, 12855 },
+{ FRM_WomenToilets5, 0x510958, 102 },
+{ TXT_WomenToilets, 0x5111a2, 1666 },
+{ IMG_WomenToilets, 0x511824, 46080 },
+{ PAL_WomenToilets, 0x51cc24, 624 },
+{ MSK_WomenToilets, 0x51ce94, 2022 },
+{ BOX_WomenToilets, 0x51d67a, 1280 },
+{ TXT_MargaretRoom, 0x55e975, 1709 },
+{ IMG_MargaretRoom, 0x55f022, 46080 },
+{ PAL_MargaretRoom, 0x56a422, 768 },
+{ MSK_MargaretRoom, 0x56a722, 3 },
+{ BOX_MargaretRoom, 0x56a725, 1280 },
+{ IMG_Meanwhile, 0x56aeb7, 46080 },
+{ DAT_BellChurch, 0x5bf85c, 5617 },
+{ FRM_BellChurch1, 0x5c2a70, 40960 },
+{ FRM_BellChurch2, 0x5cca70, 2100 },
+{ TXT_BellChurch, 0x5cd9a2, 1154 },
+{ IMG_BellChurch, 0x5cde24, 46080 },
+{ PAL_BellChurch, 0x5d9224, 624 },
+{ MSK_BellChurch, 0x5d9494, 861 },
+{ BOX_BellChurch, 0x5d97f1, 1280 },
+{ ANM_PhilipLauraIntro, 0x7cb4d4, 29824 },
+{ AOF_PhilipLauraIntro, 0x7d2954, 74 },
+{ ANM_LauraIntro, 0x7d299e, 12793 },
+{ AOF_LauraIntro, 0x7d5b97, 48 },
+{ TXT_SpringBridgeIntro, 0x7d6264, 1835 },
+{ IMG_SpringBridgeIntro, 0x7d698f, 46080 },
+{ PAL_SpringBridgeIntro, 0x7e1d8f, 720 },
+{ TXT_SpringRock, 0x7e28a2, 1348 },
+{ IMG_SpringRock, 0x7e2de6, 46080 },
+{ PAL_SpringRock, 0x7ee1e6, 720 },
+{ MSK_SpringRock, 0x7ee4b6, 3117 },
+{ BOX_SpringRock, 0x7ef0e3, 1280 },
+{ PAL_PenduloStudios, 0x7ef76e, 768 },
+{ IMG_PenduloStudios, 0x7efa6e, 64000 },
+{ PAL_GraphicAdventure, 0x7ff56e, 768 },
+{ IMG_GraphicAdventure, 0x7ff86e, 64000 },
+{ PAL_Presents, 0x80f36e, 768 },
+{ IMG_Presents, 0x80f66e, 64000 },
+{ PAL_OptikSoftware, 0x81f16e, 768 },
+{ IMG_OptikSoftware, 0x81f46e, 64000 },
+{ FRM_IgorDirBack, 0x83bdc3, 10500 },
+{ FRM_IgorDirRight, 0x83e6c7, 13500 },
+{ FRM_IgorDirFront, 0x841b83, 10500 },
+{ FRM_IgorDirLeft, 0x844487, 13500 },
+{ FRM_IgorHead, 0x847943, 3696 },
+{ IMG_VerbsPanel, 0x848ae0, 3840 },
+{ TXT_MainTable, 0x8499e0, 28028 },
diff --git a/tools/create_igortbl/strings.h b/tools/create_igortbl/strings.h
new file mode 100644
index 0000000000..4014000dd1
--- /dev/null
+++ b/tools/create_igortbl/strings.h
@@ -0,0 +1,3 @@
+//{ STR_COPYRIGHT_1995, STR_LANG_ANY, "(C) 1995 Optik Software. All rights reserved." },
+//{ STR_COPYRIGHT_1994, STR_LANG_ANY, "(C) 1994 PENDULO STUDIOS. All rights reserved." },
+