diff options
Diffstat (limited to 'devtools/create_kyradat/resources/eob2_amiga.h')
-rw-r--r-- | devtools/create_kyradat/resources/eob2_amiga.h | 2775 |
1 files changed, 2775 insertions, 0 deletions
diff --git a/devtools/create_kyradat/resources/eob2_amiga.h b/devtools/create_kyradat/resources/eob2_amiga.h new file mode 100644 index 0000000000..16cb4406e8 --- /dev/null +++ b/devtools/create_kyradat/resources/eob2_amiga.h @@ -0,0 +1,2775 @@ +static const byte kEoB2ChargenStartLevelsAmiga[60] = { + 0x07, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, + 0x06, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, + 0x07, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, + 0x06, 0x06, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02, + 0x06, 0x05, 0x00, 0x02, 0x05, 0x05, 0x06, 0x03, + 0x06, 0x05, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02, + 0x05, 0x05, 0x05, 0x03, 0x05, 0x06, 0x00, 0x02, + 0x06, 0x05, 0x00, 0x02 +}; + +static const ByteProvider kEoB2ChargenStartLevelsAmigaProvider = { ARRAYSIZE(kEoB2ChargenStartLevelsAmiga), kEoB2ChargenStartLevelsAmiga }; + +static const byte kEoB2ChargenClassMinStatsAmiga[90] = { + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, + 0x0e, 0x0d, 0x0e, 0x00, 0x0c, 0x00, 0x0d, 0x00, + 0x09, 0x11, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, + 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, + 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, + 0x0e, 0x0d, 0x0e, 0x00, 0x00, 0x09, 0x09, 0x00, + 0x00, 0x00 +}; + +static const ByteProvider kEoB2ChargenClassMinStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenClassMinStatsAmiga), kEoB2ChargenClassMinStatsAmiga }; + +static const byte kEoB2ChargenRaceMinStatsAmiga[36] = { + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x08, + 0x03, 0x07, 0x06, 0x08, 0x03, 0x04, 0x03, 0x06, + 0x06, 0x03, 0x08, 0x03, 0x03, 0x03, 0x0c, 0x02, + 0x06, 0x07, 0x02, 0x03, 0x08, 0x03, 0x07, 0x06, + 0x03, 0x08, 0x0a, 0x06 +}; + +static const ByteProvider kEoB2ChargenRaceMinStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenRaceMinStatsAmiga), kEoB2ChargenRaceMinStatsAmiga }; + +static const uint16 kEoB2ChargenRaceMaxStatsAmiga[36] = { + 0x6412, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x6412, 0x0012, + 0x0012, 0x0013, 0x0011, 0x0012, 0x6412, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x6412, 0x0012, 0x0012, 0x0011, 0x0013, 0x0010, + 0x6412, 0x0013, 0x0011, 0x0012, 0x0012, 0x0012, 0x0011, 0x0012, + 0x0011, 0x0013, 0x0012, 0x0012 +}; + +static const Uint16Provider kEoB2ChargenRaceMaxStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenRaceMaxStatsAmiga), kEoB2ChargenRaceMaxStatsAmiga }; + +static const byte kEoB2SaveThrowTable1Amiga[50] = { + 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08, 0x07, 0x05, + 0x04, 0x03, 0x12, 0x10, 0x0F, 0x0D, 0x0C, 0x0A, + 0x09, 0x07, 0x06, 0x05, 0x11, 0x0F, 0x0E, 0x0C, + 0x0B, 0x09, 0x08, 0x06, 0x05, 0x04, 0x14, 0x11, + 0x10, 0x0D, 0x0C, 0x09, 0x08, 0x05, 0x04, 0x04, + 0x13, 0x11, 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08, + 0x07, 0x06 +}; + +static const ByteProvider kEoB2SaveThrowTable1AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable1Amiga), kEoB2SaveThrowTable1Amiga }; + +static const byte kEoB2SaveThrowTable2Amiga[25] = { + 0x0e, 0x0d, 0x0b, 0x0a, 0x08, 0x0b, 0x09, 0x07, + 0x05, 0x03, 0x0d, 0x0b, 0x09, 0x07, 0x05, 0x0f, + 0x0d, 0x0b, 0x09, 0x07, 0x0c, 0x0a, 0x08, 0x06, + 0x04 +}; + +static const ByteProvider kEoB2SaveThrowTable2AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable2Amiga), kEoB2SaveThrowTable2Amiga }; + +static const byte kEoB2SaveThrowTable3Amiga[35] = { + 0x0a, 0x09, 0x07, 0x06, 0x05, 0x04, 0x02, 0x0e, + 0x0d, 0x0b, 0x0a, 0x09, 0x08, 0x06, 0x0d, 0x0c, + 0x0a, 0x09, 0x08, 0x07, 0x05, 0x10, 0x0f, 0x0d, + 0x0c, 0x0b, 0x0a, 0x08, 0x0f, 0x0e, 0x0c, 0x0b, + 0x0a, 0x09, 0x07 +}; + +static const ByteProvider kEoB2SaveThrowTable3AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable3Amiga), kEoB2SaveThrowTable3Amiga }; + +static const byte kEoB2SaveThrowTable4Amiga[30] = { + 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, 0x0e, 0x0c, + 0x0a, 0x08, 0x06, 0x07, 0x0c, 0x0b, 0x0a, 0x09, + 0x08, 0x04, 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, + 0x0f, 0x0d, 0x0b, 0x09, 0x07, 0x05 +}; + +static const ByteProvider kEoB2SaveThrowTable4AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable4Amiga), kEoB2SaveThrowTable4Amiga }; + +static const byte kEoB2SaveThrwLvlIndexAmiga[6] = { + 0x11, 0x15, 0x13, 0x15, 0x11, 0x11 +}; + +static const ByteProvider kEoB2SaveThrwLvlIndexAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwLvlIndexAmiga), kEoB2SaveThrwLvlIndexAmiga }; + +static const byte kEoB2SaveThrwModDivAmiga[6] = { + 0x02, 0x05, 0x03, 0x04, 0x02, 0x02 +}; + +static const ByteProvider kEoB2SaveThrwModDivAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwModDivAmiga), kEoB2SaveThrwModDivAmiga }; + +static const byte kEoB2SaveThrwModExtAmiga[6] = { + 0x0A, 0x05, 0x07, 0x06, 0x0A, 0x0A +}; + +static const ByteProvider kEoB2SaveThrwModExtAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwModExtAmiga), kEoB2SaveThrwModExtAmiga }; + +static const char *const kEoB2EnchantedStringAmiga[1] = { + "+%d %s" +}; + +static const StringListProvider kEoB2EnchantedStringAmigaProvider = { ARRAYSIZE(kEoB2EnchantedStringAmiga), kEoB2EnchantedStringAmiga }; + +static const char *const kEoB2MenuStringsSpellNoAmiga[3] = { + "6", + "7", + "8" +}; + +static const StringListProvider kEoB2MenuStringsSpellNoAmigaProvider = { ARRAYSIZE(kEoB2MenuStringsSpellNoAmiga), kEoB2MenuStringsSpellNoAmiga }; + +static const byte kEoB2SpellLevelsMageAmiga[35] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, + 0x05, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x08, + 0x00, 0x01, 0x01 +}; + +static const ByteProvider kEoB2SpellLevelsMageAmigaProvider = { ARRAYSIZE(kEoB2SpellLevelsMageAmiga), kEoB2SpellLevelsMageAmiga }; + +static const byte kEoB2SpellLevelsClericAmiga[29] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, + 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, + 0x06, 0x06, 0x08, 0x08, 0x00 +}; + +static const ByteProvider kEoB2SpellLevelsClericAmigaProvider = { ARRAYSIZE(kEoB2SpellLevelsClericAmiga), kEoB2SpellLevelsClericAmiga }; + +static const byte kEoB2NumSpellsClericAmiga[136] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, + 0x05, 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, + 0x06, 0x05, 0x05, 0x03, 0x02, 0x02, 0x00, 0x00, + 0x06, 0x06, 0x06, 0x04, 0x02, 0x02, 0x00, 0x00, + 0x06, 0x06, 0x06, 0x05, 0x03, 0x02, 0x01, 0x00, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x02, 0x01, 0x00, + 0x07, 0x07, 0x07, 0x06, 0x04, 0x03, 0x01, 0x00, + 0x07, 0x07, 0x07, 0x07, 0x05, 0x03, 0x02, 0x00 +}; + +static const ByteProvider kEoB2NumSpellsClericAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsClericAmiga), kEoB2NumSpellsClericAmiga }; + +static const byte kEoB2NumSpellsWisAdjAmiga[64] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2NumSpellsWisAdjAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsWisAdjAmiga), kEoB2NumSpellsWisAdjAmiga }; + +static const byte kEoB2NumSpellsPalAmiga[136] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2NumSpellsPalAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsPalAmiga), kEoB2NumSpellsPalAmiga }; + +static const byte kEoB2NumSpellsMageAmiga[136] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x04, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x01, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x01, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x01, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x02, 0x01, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x03, 0x02 +}; + +static const ByteProvider kEoB2NumSpellsMageAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsMageAmiga), kEoB2NumSpellsMageAmiga }; + +static const uint32 kEoB2ExperienceTable0Amiga[14] = { + 0x00000000, 0x000007D0, 0x00000FA0, 0x00001F40, 0x00003E80, 0x00007D00, 0x0000FA00, 0x0001E848, + 0x0003D090, 0x0007A120, 0x000B71B0, 0x000F4240, 0x001312D0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable0AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable0Amiga), kEoB2ExperienceTable0Amiga }; + +static const uint32 kEoB2ExperienceTable1Amiga[14] = { + 0x00000000, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x0000EA60, 0x00015F90, + 0x00020F58, 0x0003D090, 0x0005B8D8, 0x000B71B0, 0x00112A88, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable1AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable1Amiga), kEoB2ExperienceTable1Amiga }; + +static const uint32 kEoB2ExperienceTable2Amiga[14] = { + 0x00000000, 0x000005DC, 0x00000BB8, 0x00001770, 0x000032C8, 0x00006B6C, 0x0000D6D8, 0x0001ADB0, + 0x00036EE8, 0x0006DDD0, 0x000A4CB8, 0x000DBBA0, 0x00112A88, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable2AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable2Amiga), kEoB2ExperienceTable2Amiga }; + +static const uint32 kEoB2ExperienceTable3Amiga[14] = { + 0x00000000, 0x000004E2, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x00011170, + 0x0001ADB0, 0x00027100, 0x00035B60, 0x0006B6C0, 0x000A1220, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable3AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable3Amiga), kEoB2ExperienceTable3Amiga }; + +static const uint32 kEoB2ExperienceTable4Amiga[14] = { + 0x00000000, 0x000008CA, 0x00001194, 0x00002328, 0x00004650, 0x00008CA0, 0x000124F8, 0x000249F0, + 0x000493E0, 0x000927C0, 0x000DBBA0, 0x00124F80, 0x0016E360, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable4AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable4Amiga), kEoB2ExperienceTable4Amiga }; + +static const byte kEoB2ExpObjectTlModeAmiga[18] = { + 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x02, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTlModeAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTlModeAmiga), kEoB2ExpObjectTlModeAmiga }; + +static const byte kEoB2ExpObjectTblIndexAmiga[14] = { + 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTblIndexAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTblIndexAmiga), kEoB2ExpObjectTblIndexAmiga }; + +static const byte kEoB2ExpObjectShpStartAmiga[4] = { + 0x07, 0x0C, 0x0F, 0x12 +}; + +static const ByteProvider kEoB2ExpObjectShpStartAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectShpStartAmiga), kEoB2ExpObjectShpStartAmiga }; + +static const byte kEoB2ExpObjectTbl1Amiga[13] = { + 0x1f, 0x17, 0x1f, 0x17, 0x18, 0x17, 0x18, 0x19, + 0x18, 0x19, 0x18, 0x19, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTbl1AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl1Amiga), kEoB2ExpObjectTbl1Amiga }; + +static const byte kEoB2ExpObjectTbl2Amiga[10] = { + 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1d, 0x1e, 0x1d, + 0x1e, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTbl2AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl2Amiga), kEoB2ExpObjectTbl2Amiga }; + +static const byte kEoB2ExpObjectTbl3Amiga[11] = { + 0x17, 0x1b, 0x17, 0x1b, 0x08, 0x1b, 0x08, 0x1e, + 0x08, 0x1e, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTbl3AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl3Amiga), kEoB2ExpObjectTbl3Amiga }; + +static const byte kEoB2ExpObjectYAmiga[4] = { + 0x77, 0x67, 0x4F, 0x3F +}; + +static const ByteProvider kEoB2ExpObjectYAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectYAmiga), kEoB2ExpObjectYAmiga }; + +static const byte kEoB2SparkDefStepsAmiga[8] = { + 0x40, 0x90, 0xE4, 0xB9, 0x6E, 0x1B, 0x06, 0x01 +}; + +static const ByteProvider kEoB2SparkDefStepsAmigaProvider = { ARRAYSIZE(kEoB2SparkDefStepsAmiga), kEoB2SparkDefStepsAmiga }; + +static const byte kEoB2SparkDefSubStepsAmiga[4] = { + 0xC0, 0x30, 0x0C, 0x03 +}; + +static const ByteProvider kEoB2SparkDefSubStepsAmigaProvider = { ARRAYSIZE(kEoB2SparkDefSubStepsAmiga), kEoB2SparkDefSubStepsAmiga }; + +static const byte kEoB2SparkDefShiftAmiga[4] = { + 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB2SparkDefShiftAmigaProvider = { ARRAYSIZE(kEoB2SparkDefShiftAmiga), kEoB2SparkDefShiftAmiga }; + +static const byte kEoB2SparkDefAddAmiga[8] = { + 0x08, 0x06, 0x1C, 0x14, 0x0D, 0x18, 0x0D, 0x0F +}; + +static const ByteProvider kEoB2SparkDefAddAmigaProvider = { ARRAYSIZE(kEoB2SparkDefAddAmiga), kEoB2SparkDefAddAmiga }; + +static const byte kEoB2SparkDefXAmiga[6] = { + 0x17, 0x20, 0x17, 0x20, 0x17, 0x20 +}; + +static const ByteProvider kEoB2SparkDefXAmigaProvider = { ARRAYSIZE(kEoB2SparkDefXAmiga), kEoB2SparkDefXAmiga }; + +static const byte kEoB2SparkDefYAmiga[6] = { + 0x02, 0x02, 0x34, 0x34, 0x66, 0x66 +}; + +static const ByteProvider kEoB2SparkDefYAmigaProvider = { ARRAYSIZE(kEoB2SparkDefYAmiga), kEoB2SparkDefYAmiga }; + +static const uint32 kEoB2SparkOfFlags1Amiga[11] = { + 0x40000000, 0x95000000, 0xEA550000, 0xBFAA5400, 0x6AFFA954, 0x15AAFEA9, 0x0055ABFE, 0x000056AB, + 0x00000156, 0x00000001, 0x00000000 +}; + +static const Uint32Provider kEoB2SparkOfFlags1AmigaProvider = { ARRAYSIZE(kEoB2SparkOfFlags1Amiga), kEoB2SparkOfFlags1Amiga }; + +static const uint32 kEoB2SparkOfFlags2Amiga[16] = { + 0xC0000000, 0x30000000, 0x0C000000, 0x03000000, 0x00C00000, 0x00300000, 0x000C0000, 0x00030000, + 0x0000C000, 0x00003000, 0x00000C00, 0x00000300, 0x000000C0, 0x00000030, 0x0000000C, 0x00000003 +}; + +static const Uint32Provider kEoB2SparkOfFlags2AmigaProvider = { ARRAYSIZE(kEoB2SparkOfFlags2Amiga), kEoB2SparkOfFlags2Amiga }; + +static const byte kEoB2SparkOfShiftAmiga[16] = { + 0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x12, 0x10, + 0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB2SparkOfShiftAmigaProvider = { ARRAYSIZE(kEoB2SparkOfShiftAmiga), kEoB2SparkOfShiftAmiga }; + +static const byte kEoB2SparkOfXAmiga[16] = { + 0x50, 0x70, 0x30, 0x68, 0x20, 0x60, 0x38, 0x78, + 0x80, 0x48, 0x58, 0x28, 0x60, 0x40, 0x70, 0x48 +}; + +static const ByteProvider kEoB2SparkOfXAmigaProvider = { ARRAYSIZE(kEoB2SparkOfXAmiga), kEoB2SparkOfXAmiga }; + +static const byte kEoB2SparkOfYAmiga[16] = { + 0x31, 0x2B, 0x48, 0x17, 0x16, 0x48, 0x35, 0x1B, + 0x43, 0x2E, 0x24, 0x28, 0x38, 0x1C, 0x16, 0x44 +}; + +static const ByteProvider kEoB2SparkOfYAmigaProvider = { ARRAYSIZE(kEoB2SparkOfYAmiga), kEoB2SparkOfYAmiga }; + +static const byte kEoB2SpellPropertiesAmiga[1820] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0b, 0xc6, 0x00, 0x01, + 0xb6, 0xbe, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x0b, 0xcc, + 0x00, 0x01, 0xb7, 0x2a, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, + 0x0b, 0xda, 0x00, 0x01, 0xb8, 0x52, 0x00, 0x4c, + 0x00, 0x03, 0x0b, 0x3e, 0x00, 0x01, 0xb8, 0x78, + 0x5f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x03, 0x0b, 0xe8, 0x00, 0x01, 0xb8, 0x9e, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xb8, 0xd6, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0b, 0xf6, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x8b, 0x00, 0x03, 0x0b, 0x46, + 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x0b, 0xfe, + 0x00, 0x01, 0xb9, 0x16, 0x04, 0x88, 0x00, 0x03, + 0x0b, 0x4e, 0x00, 0x01, 0xb9, 0xe2, 0x58, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, + 0x0c, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, + 0x00, 0x03, 0x0b, 0x56, 0x00, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x03, 0x0c, 0x14, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x03, 0x0c, 0x28, 0x00, 0x01, + 0xb6, 0x74, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x3a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, + 0x0c, 0x48, 0x00, 0x01, 0xba, 0x44, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xba, 0x82, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, + 0x00, 0x03, 0x0c, 0x5a, 0x00, 0x01, 0xb6, 0x18, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0c, 0x68, 0x00, 0x01, + 0xba, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xbb, 0x02, 0x63, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x0c, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x48, 0x00, 0x03, + 0x0b, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0c, 0x78, 0x00, 0x01, 0xbb, 0x3e, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbb, 0x7c, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0c, 0x84, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x03, 0x0c, 0x9c, 0x00, 0x01, + 0xbc, 0x7e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xbc, 0xbc, 0x47, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x0c, 0xac, + 0x00, 0x01, 0xbc, 0xf8, 0x04, 0x88, 0x00, 0x03, + 0x0b, 0x6e, 0x00, 0x01, 0xbd, 0xc6, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0c, 0xbc, 0x00, 0x01, 0xbd, 0xf2, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0c, 0xc2, 0x00, 0x01, 0xbe, 0x54, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xbe, 0x92, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x00, 0x03, 0x0c, 0xcc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x29, 0x00, 0x03, 0x0b, 0x76, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0c, 0xe2, + 0x00, 0x01, 0xbf, 0x18, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0c, 0xf0, 0x00, 0x01, 0xbf, 0x96, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, + 0x00, 0x03, 0x0c, 0xfe, 0x00, 0x01, 0xc0, 0x82, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0xc0, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0d, 0x0c, 0x00, 0x01, + 0xc2, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x1a, + 0x00, 0x01, 0xc3, 0x58, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0d, 0x28, 0x00, 0x01, 0xc3, 0xce, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x03, 0x0d, 0x38, 0x00, 0x01, 0xc4, 0x48, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0d, 0x48, 0x00, 0x01, + 0xc4, 0x78, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x7e, + 0x00, 0x01, 0xc4, 0x92, 0x49, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x54, + 0x00, 0x01, 0xc4, 0xac, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0d, 0x64, 0x00, 0x01, 0xc5, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0d, 0x74, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x8a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x03, + 0x0b, 0x86, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0d, 0x90, 0x00, 0x01, 0xc5, 0x7c, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x03, 0x0d, 0xa4, 0x00, 0x01, 0xc5, 0x9a, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0d, 0xb6, 0x00, 0x01, + 0xb8, 0x52, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x3e, + 0x00, 0x01, 0xb8, 0x78, 0x5f, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x0d, 0xc4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x03, + 0x0b, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0d, 0xda, 0x00, 0x01, 0xc5, 0xda, 0x00, 0x39, + 0x00, 0x03, 0x0b, 0x96, 0x00, 0x01, 0xc6, 0xbc, + 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0d, 0xde, 0x00, 0x01, 0xc6, 0xe4, + 0x24, 0x08, 0x00, 0x03, 0x0b, 0x9e, 0x00, 0x01, + 0xb9, 0xe2, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0x00, 0x03, 0x0d, 0xea, 0x00, 0x01, + 0xbb, 0x3e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xbb, 0x7c, 0x65, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0xf6, + 0x00, 0x01, 0xc7, 0x9e, 0x00, 0x28, 0x00, 0x03, + 0x0b, 0xa6, 0x00, 0x01, 0xc8, 0x14, 0x6f, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0e, 0x02, 0x00, 0x01, 0xc8, 0x2e, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0x0e, 0x00, 0x01, 0xb6, 0x18, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0e, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x99, 0x00, 0x03, 0x0b, 0xae, + 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0x2e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x03, + 0x0b, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0e, 0x36, 0x00, 0x01, 0xc8, 0x6e, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0x48, 0x00, 0x01, 0xc9, 0x02, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0e, 0x5e, 0x00, 0x01, + 0xc8, 0xbc, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0x72, + 0x00, 0x01, 0xc9, 0x26, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0e, 0x84, 0x00, 0x00, 0x00, 0x00, 0x02, 0x48, + 0x00, 0x03, 0x0b, 0x8e, 0x00, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0xa4, 0x00, 0x01, 0xc9, 0x5a, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0e, 0xba, 0x00, 0x01, + 0xc9, 0x78, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0xd0, + 0x00, 0x01, 0xc9, 0xb8, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc9, 0xf6, 0x62, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, + 0x0e, 0xde, 0x00, 0x01, 0xca, 0x26, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0xea, 0x00, 0x01, 0xc4, 0xac, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0e, 0xf6, 0x00, 0x01, + 0xc4, 0x78, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x7e, + 0x00, 0x01, 0xc4, 0x92, 0x49, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x02, + 0x00, 0x01, 0xca, 0x6a, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0f, 0x08, 0x00, 0x01, 0xca, 0x86, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1c, 0x00, 0x01, + 0xcd, 0xf6, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x2a, + 0x00, 0x01, 0xca, 0xea, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0f, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xce, 0x30, + 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4c, 0x00, 0x03, 0x0b, 0xbe, 0x00, 0x00, + 0x00, 0x00, 0x5b, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xce, 0x9a, 0x62, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xcc, 0x7e, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0f, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcb, 0xfa, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0f, 0x4e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xcd, 0x0c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xcd, 0x7e, 0x65, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2SpellPropertiesAmigaProvider = { ARRAYSIZE(kEoB2SpellPropertiesAmiga), kEoB2SpellPropertiesAmiga }; + +static const byte kEoB2MagicFlightPropsAmiga[56] = { + 0x04, 0xff, 0x41, 0x0c, 0x0b, 0xff, 0x04, 0x06, + 0x0d, 0xff, 0x7a, 0x09, 0x0f, 0xff, 0x4a, 0x08, + 0x11, 0x06, 0x38, 0x0a, 0x14, 0x06, 0x7a, 0x0b, + 0x18, 0xff, 0x4a, 0x08, 0x36, 0xff, 0x4b, 0x09, + 0x3f, 0xff, 0x4b, 0x09, 0x41, 0x06, 0x4b, 0x09, + 0x42, 0x06, 0x4b, 0x08, 0x43, 0x06, 0x4b, 0x08, + 0x44, 0x06, 0x4b, 0x08, 0x45, 0x06, 0x4b, 0x08 +}; + +static const ByteProvider kEoB2MagicFlightPropsAmigaProvider = { ARRAYSIZE(kEoB2MagicFlightPropsAmiga), kEoB2MagicFlightPropsAmiga }; + +static const byte kEoB2TurnUndeadEffectAmiga[140] = { + 0x0a, 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x0a, + 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x10, 0x0d, 0x0a, 0x07, + 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x14, 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x14, + 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x63, 0x63, 0x14, 0x13, + 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, + 0x0d, 0x0a, 0x07, 0x04, 0x04, 0x00, 0x00, 0x00, + 0x63, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0d, + 0x0a, 0x07, 0x07, 0x04, 0x04, 0x00, 0x63, 0x63, + 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0d, 0x0a, + 0x0a, 0x07, 0x07, 0x04 +}; + +static const ByteProvider kEoB2TurnUndeadEffectAmigaProvider = { ARRAYSIZE(kEoB2TurnUndeadEffectAmiga), kEoB2TurnUndeadEffectAmiga }; + +static const byte kEoB2BurningHandsDestAmiga[32] = { + 0x02, 0x03, 0x04, 0x01, 0x02, 0x05, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x01, 0x03, 0x05, 0x00, 0x00, + 0x00, 0x01, 0x04, 0x02, 0x03, 0x05, 0x00, 0x00, + 0x01, 0x03, 0x04, 0x00, 0x02, 0x05, 0x00, 0x00 +}; + +static const ByteProvider kEoB2BurningHandsDestAmigaProvider = { ARRAYSIZE(kEoB2BurningHandsDestAmiga), kEoB2BurningHandsDestAmiga }; + +static const byte kEoB2ConeOfColdDest1Amiga[7] = { + 0xE0, 0xC0, 0xC1, 0xBF, 0xA0, 0x9F, 0xA1 +}; + +static const ByteProvider kEoB2ConeOfColdDest1AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest1Amiga), kEoB2ConeOfColdDest1Amiga }; + +static const byte kEoB2ConeOfColdDest2Amiga[7] = { + 0x01, 0x02, 0xE2, 0x22, 0x03, 0xE3, 0x23 +}; + +static const ByteProvider kEoB2ConeOfColdDest2AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest2Amiga), kEoB2ConeOfColdDest2Amiga }; + +static const byte kEoB2ConeOfColdDest3Amiga[7] = { + 0x20, 0x40, 0x3F, 0x41, 0x60, 0x5F, 0x61 +}; + +static const ByteProvider kEoB2ConeOfColdDest3AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest3Amiga), kEoB2ConeOfColdDest3Amiga }; + +static const byte kEoB2ConeOfColdDest4Amiga[7] = { + 0xFF, 0xFE, 0x1E, 0xDE, 0xFD, 0x1D, 0xDD +}; + +static const ByteProvider kEoB2ConeOfColdDest4AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest4Amiga), kEoB2ConeOfColdDest4Amiga }; + +static const byte kEoB2ConeOfColdGfxTblAmiga[8] = { + 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1d, 0x1d, 0x00 +}; + +static const ByteProvider kEoB2ConeOfColdGfxTblAmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdGfxTblAmiga), kEoB2ConeOfColdGfxTblAmiga }; + +static const byte kEoB2DscDoorShapeIndexAmiga[53] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01 +}; + +static const ByteProvider kEoB2DscDoorShapeIndexAmigaProvider = { ARRAYSIZE(kEoB2DscDoorShapeIndexAmiga), kEoB2DscDoorShapeIndexAmiga }; + +static const byte kEoB2WllFlagPresetAmiga[25] = { + 0x07, 0x00, 0x40, 0xA8, 0x88, 0x88, 0x88, 0x9F, + 0xA8, 0x88, 0x88, 0x88, 0x9F, 0xA8, 0x88, 0x88, + 0x88, 0x9F, 0xA8, 0x88, 0x88, 0x88, 0x9F, 0x03, + 0x03 +}; + +static const ByteProvider kEoB2WllFlagPresetAmigaProvider = { ARRAYSIZE(kEoB2WllFlagPresetAmiga), kEoB2WllFlagPresetAmiga }; + +static const uint16 kEoB2DscShapeCoordsAmiga[180] = { + 0xff91, 0xffc1, 0xffa1, 0xffc1, 0xff75, 0xffc5, 0xff8b, 0xffc5, + 0xff88, 0xffc3, 0xffb4, 0xffc1, 0xffc4, 0xffc1, 0xffa1, 0xffc5, + 0xffb6, 0xffc5, 0xffb0, 0xffc3, 0xffd5, 0xffc1, 0xffe5, 0xffc1, + 0xffcb, 0xffc5, 0xffe1, 0xffc5, 0xffd8, 0xffc3, 0xfff8, 0xffc1, + 0x0008, 0xffc1, 0xfff6, 0xffc5, 0x000a, 0xffc5, 0x0000, 0xffc3, + 0x001b, 0xffc1, 0x002b, 0xffc1, 0x001f, 0xffc5, 0x0035, 0xffc5, + 0x0028, 0xffc3, 0x003c, 0xffc1, 0x004c, 0xffc1, 0x004a, 0xffc5, + 0x005f, 0xffc5, 0x0050, 0xffc3, 0x005f, 0xffc1, 0x006f, 0xffc1, + 0x0075, 0xffc5, 0x008b, 0xffc5, 0x0078, 0xffc3, 0xff8a, 0xffcb, + 0xffa4, 0xffcb, 0xff68, 0xffd3, 0xff88, 0xffd3, 0xff8a, 0xffce, + 0xffbe, 0xffcb, 0xffd8, 0xffcb, 0xffac, 0xffd3, 0xffcd, 0xffd3, + 0xffc5, 0xffce, 0xfff3, 0xffcb, 0x000d, 0xffcb, 0xfff0, 0xffd3, + 0x0010, 0xffd3, 0x0000, 0xffce, 0x0028, 0xffcb, 0x0042, 0xffcb, + 0x0033, 0xffd3, 0x0054, 0xffd3, 0x003b, 0xffce, 0x005c, 0xffcb, + 0x0076, 0xffcb, 0x0078, 0xffd3, 0x0098, 0xffd3, 0x0076, 0xffce, + 0xff92, 0xffdd, 0xffbd, 0xffdd, 0xff74, 0xffea, 0xffad, 0xffea, + 0xff9e, 0xffe2, 0xffea, 0xffdd, 0x0016, 0xffdd, 0xffe5, 0xffea, + 0x001b, 0xffea, 0x0000, 0xffe2, 0x0043, 0xffdd, 0x006e, 0xffdd, + 0x0053, 0xffea, 0x008c, 0xffea, 0x0062, 0xffe2, 0xff80, 0xfffc, + 0x0080, 0xfffc, 0xff80, 0xffbe, 0x0080, 0xffbe, 0x0080, 0x0000, + 0xffda, 0xfffc, 0x0026, 0xfffc, 0xffda, 0xffbe, 0x0026, 0xffbe, + 0x0000, 0x0000, 0xff80, 0xfffc, 0x0080, 0xfffc, 0xff80, 0xffbe, + 0x0080, 0xffbe, 0x0080, 0x0000 +}; + +static const Uint16Provider kEoB2DscShapeCoordsAmigaProvider = { ARRAYSIZE(kEoB2DscShapeCoordsAmiga), kEoB2DscShapeCoordsAmiga }; + +static const byte kEoB2DscDoorScaleOffsAmiga[53] = { + 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D, + 0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x33, 0x34 +}; + +static const ByteProvider kEoB2DscDoorScaleOffsAmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleOffsAmiga), kEoB2DscDoorScaleOffsAmiga }; + +static const byte kEoB2DscDoorScaleMult1Amiga[4] = { + 0x08, 0x0C, 0x12, 0x00 +}; + +static const ByteProvider kEoB2DscDoorScaleMult1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult1Amiga), kEoB2DscDoorScaleMult1Amiga }; + +static const byte kEoB2DscDoorScaleMult2Amiga[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB2DscDoorScaleMult2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult2Amiga), kEoB2DscDoorScaleMult2Amiga }; + +static const byte kEoB2DscDoorScaleMult3Amiga[4] = { + 0x05, 0x08, 0x0C, 0x00 +}; + +static const ByteProvider kEoB2DscDoorScaleMult3AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult3Amiga), kEoB2DscDoorScaleMult3Amiga }; + +static const byte kEoB2DscDoorType5OffsAmiga[6] = { + 0x05, 0x03, 0x01, 0x05, 0x03, 0x01 +}; + +static const ByteProvider kEoB2DscDoorType5OffsAmigaProvider = { ARRAYSIZE(kEoB2DscDoorType5OffsAmiga), kEoB2DscDoorType5OffsAmiga }; + +static const byte kEoB2DscDoorY1Amiga[4] = { + 0x3B, 0x47, 0x56, 0x00 +}; + +static const ByteProvider kEoB2DscDoorY1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorY1Amiga), kEoB2DscDoorY1Amiga }; + +static const byte kEoB2DscDoorY2Amiga[4] = { + 0x1F, 0x18, 0x0F, 0x00 +}; + +static const ByteProvider kEoB2DscDoorY2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorY2Amiga), kEoB2DscDoorY2Amiga }; + +static const byte kEoB2DscDoorFrameY1Amiga[4] = { + 0x1E, 0x18, 0x10, 0x00 +}; + +static const ByteProvider kEoB2DscDoorFrameY1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorFrameY1Amiga), kEoB2DscDoorFrameY1Amiga }; + +static const byte kEoB2DscDoorFrameY2Amiga[4] = { + 0x3B, 0x47, 0x56, 0x78 +}; + +static const ByteProvider kEoB2DscDoorFrameY2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorFrameY2Amiga), kEoB2DscDoorFrameY2Amiga }; + +static const byte kEoB2DscItemPosIndexAmiga[16] = { + 0x00, 0x01, 0x02, 0x03, 0x02, 0x00, 0x03, 0x01, + 0x03, 0x02, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02 +}; + +static const ByteProvider kEoB2DscItemPosIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemPosIndexAmiga), kEoB2DscItemPosIndexAmiga }; + +static const uint16 kEoB2DscItemShpXAmiga[18] = { + 0xFFC8, 0xFFF8, 0x0028, 0x0058, 0x0088, 0x00B8, 0x00E8, 0xFFB8, + 0x0008, 0x0058, 0x00A8, 0x00F8, 0xFFD8, 0x0058, 0x00D8, 0xFFA8, + 0x0058, 0x0108 +}; + +static const Uint16Provider kEoB2DscItemShpXAmigaProvider = { ARRAYSIZE(kEoB2DscItemShpXAmiga), kEoB2DscItemShpXAmiga }; + +static const byte kEoB2DscItemScaleIndexAmiga[18] = { + 0xFF, 0xFF, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, + 0x25, 0x00 +}; + +static const ByteProvider kEoB2DscItemScaleIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemScaleIndexAmiga), kEoB2DscItemScaleIndexAmiga }; + +static const byte kEoB2DscItemTileIndexAmiga[18] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x09, 0xFF, 0x0B, + 0x0C, 0x0D +}; + +static const ByteProvider kEoB2DscItemTileIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemTileIndexAmiga), kEoB2DscItemTileIndexAmiga }; + +static const byte kEoB2DscItemShapeMapAmiga[113] = { + 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, 0x03, 0x04, + 0x03, 0x05, 0x06, 0x06, 0x12, 0x05, 0x0f, 0x12, + 0x14, 0x08, 0x13, 0x11, 0x15, 0x18, 0x07, 0x07, + 0x07, 0x1f, 0x09, 0x23, 0x09, 0x09, 0x09, 0x09, + 0x08, 0x1c, 0x1c, 0x1a, 0x1b, 0x21, 0x1d, 0x1d, + 0x22, 0x22, 0x22, 0x00, 0x16, 0x00, 0x00, 0x17, + 0x17, 0x17, 0x17, 0x17, 0x22, 0x21, 0x19, 0x23, + 0x10, 0x1e, 0x17, 0x25, 0x17, 0x26, 0x12, 0x21, + 0x17, 0x23, 0x1c, 0x00, 0x20, 0x25, 0x12, 0x18, + 0x1f, 0x07, 0x07, 0x15, 0x15, 0x0f, 0x03, 0x09, + 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, + 0x1b, 0x17, 0x17, 0x16, 0x16, 0x21, 0x08, 0x25, + 0x25, 0x25, 0x25, 0x28, 0x03, 0x04, 0x21, 0x00, + 0x17, 0x00, 0x20, 0x24, 0x27, 0x27, 0x1c, 0x27, + 0x00 +}; + +static const ByteProvider kEoB2DscItemShapeMapAmigaProvider = { ARRAYSIZE(kEoB2DscItemShapeMapAmiga), kEoB2DscItemShapeMapAmiga }; + +static const byte kEoB2DscTelptrShpCoordsAmiga[156] = { + 0x0c, 0x07, 0x1a, 0x01, 0x3e, 0x03, 0x0c, 0x1a, + 0x2a, 0x13, 0x40, 0x18, 0x02, 0x2d, 0x16, 0x25, + 0x28, 0x32, 0x36, 0x27, 0x0a, 0x3e, 0x16, 0x49, + 0x3e, 0x44, 0x06, 0x06, 0x2a, 0x04, 0x37, 0x0a, + 0x04, 0x1b, 0x1a, 0x16, 0x37, 0x1d, 0x0e, 0x2a, + 0x1b, 0x35, 0x2e, 0x28, 0x42, 0x30, 0x06, 0x47, + 0x06, 0x47, 0x2d, 0x4c, 0x0a, 0x04, 0x14, 0x00, + 0x2e, 0x01, 0x0c, 0x10, 0x1f, 0x10, 0x2f, 0x10, + 0x12, 0x18, 0x28, 0x1d, 0x01, 0x21, 0x08, 0x2a, + 0x11, 0x32, 0x2f, 0x2e, 0x1f, 0x25, 0x02, 0x02, + 0x01, 0x11, 0x01, 0x2f, 0x08, 0x1e, 0x11, 0x0e, + 0x11, 0x26, 0x1c, 0x01, 0x1e, 0x19, 0x1f, 0x33, + 0x24, 0x11, 0x26, 0x05, 0x28, 0x2b, 0x2f, 0x22, + 0x00, 0x13, 0x05, 0x01, 0x06, 0x08, 0x09, 0x0c, + 0x04, 0x1a, 0x08, 0x1f, 0x12, 0x05, 0x12, 0x15, + 0x16, 0x10, 0x1a, 0x08, 0x1a, 0x1d, 0x0a, 0x00, + 0x0a, 0x00, 0x00, 0x09, 0x00, 0x1e, 0x04, 0x11, + 0x08, 0x16, 0x08, 0x06, 0x10, 0x00, 0x11, 0x0d, + 0x12, 0x20, 0x15, 0x02, 0x14, 0x09, 0x16, 0x1b, + 0x1a, 0x14, 0x1a, 0x14 +}; + +static const ByteProvider kEoB2DscTelptrShpCoordsAmigaProvider = { ARRAYSIZE(kEoB2DscTelptrShpCoordsAmiga), kEoB2DscTelptrShpCoordsAmiga }; + +static const byte kEoB2PortalSeqDataAmiga[126] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, + 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, + 0x00, 0x01, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02, + 0x02, 0x03, 0x01, 0x04, 0x00, 0x02, 0x01, 0x03, + 0x02, 0x04, 0x03, 0x02, 0x04, 0x03, 0x03, 0x04, + 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, + 0x04, 0x04, 0x04, 0x05, 0x04, 0x06, 0x03, 0x07, + 0x02, 0x08, 0x02, 0x08, 0x01, 0x09, 0x01, 0x09, + 0x01, 0x09, 0x00, 0x0a, 0xff, 0xff +}; + +static const ByteProvider kEoB2PortalSeqDataAmigaProvider = { ARRAYSIZE(kEoB2PortalSeqDataAmiga), kEoB2PortalSeqDataAmiga }; + +static const byte kEoB2DscMonsterFrmOffsTbl1Amiga[32] = { + 0x04, 0xfe, 0x01, 0x03, 0x03, 0x04, 0xfe, 0x01, + 0x01, 0x03, 0x04, 0xfe, 0xfe, 0x01, 0x03, 0x04, + 0xfc, 0xfd, 0xff, 0x02, 0x02, 0xfc, 0xfd, 0xff, + 0xff, 0x02, 0xfc, 0xfd, 0xfd, 0xff, 0x02, 0xfc +}; + +static const ByteProvider kEoB2DscMonsterFrmOffsTbl1AmigaProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl1Amiga), kEoB2DscMonsterFrmOffsTbl1Amiga }; + +static const byte kEoB2DscMonsterFrmOffsTbl2Amiga[32] = { + 0x04, 0xfe, 0x01, 0x03, 0x03, 0x04, 0xfe, 0x01, + 0x01, 0x03, 0x04, 0xfe, 0xfe, 0x01, 0x03, 0x04, + 0x04, 0xfd, 0x01, 0x02, 0x02, 0x04, 0xfd, 0x01, + 0x01, 0x02, 0x04, 0xfd, 0xfd, 0x01, 0x02, 0x04 +}; + +static const ByteProvider kEoB2DscMonsterFrmOffsTbl2AmigaProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl2Amiga), kEoB2DscMonsterFrmOffsTbl2Amiga }; + +static const uint16 kEoB2InvSlotXAmiga[27] = { + 0x00e6, 0x0116, 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7, + 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7, + 0x00e1, 0x00e0, 0x00e1, 0x012a, 0x011f, 0x0115, 0x012c, 0x012c, + 0x012c, 0x00e4, 0x00f0 +}; + +static const Uint16Provider kEoB2InvSlotXAmigaProvider = { ARRAYSIZE(kEoB2InvSlotXAmiga), kEoB2InvSlotXAmiga }; + +static const byte kEoB2InvSlotYAmiga[27] = { + 0x74, 0x74, 0x28, 0x28, 0x3a, 0x3a, 0x4c, 0x4c, + 0x5e, 0x5e, 0x70, 0x70, 0x82, 0x82, 0x94, 0x94, + 0x38, 0x4c, 0x60, 0x37, 0x4b, 0x89, 0x5e, 0x70, + 0x82, 0x88, 0x88 +}; + +static const ByteProvider kEoB2InvSlotYAmigaProvider = { ARRAYSIZE(kEoB2InvSlotYAmiga), kEoB2InvSlotYAmiga }; + +static const uint16 kEoB2SlotValidationFlagsAmiga[27] = { + 0x0008, 0x0008, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x0001, 0x0002, 0x0004, 0x0020, 0x0040, 0x0010, 0xffff, 0x0080, + 0x0080, 0x0100, 0x0100 +}; + +static const Uint16Provider kEoB2SlotValidationFlagsAmigaProvider = { ARRAYSIZE(kEoB2SlotValidationFlagsAmiga), kEoB2SlotValidationFlagsAmiga }; + +static const byte kEoB2ProjectileWeaponTypesAmiga[15] = { + 0xFF, 0x01, 0xFF, 0x02, 0x04, 0x03, 0x05, 0x10, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x12 +}; + +static const ByteProvider kEoB2ProjectileWeaponTypesAmigaProvider = { ARRAYSIZE(kEoB2ProjectileWeaponTypesAmiga), kEoB2ProjectileWeaponTypesAmiga }; + +static const byte kEoB2WandTypesAmiga[8] = { + 0x00, 0x11, 0x17, 0x31, 0x0D, 0xFF, 0x04, 0x0C +}; + +static const ByteProvider kEoB2WandTypesAmigaProvider = { ARRAYSIZE(kEoB2WandTypesAmiga), kEoB2WandTypesAmiga }; + +static const byte kEoB2DrawObjPosIndexAmiga[20] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x03, + 0x01, 0x04, 0x02, 0x03, 0x00, 0x01, 0x04, 0x01, + 0x03, 0x00, 0x02, 0x04 +}; + +static const ByteProvider kEoB2DrawObjPosIndexAmigaProvider = { ARRAYSIZE(kEoB2DrawObjPosIndexAmiga), kEoB2DrawObjPosIndexAmiga }; + +static const byte kEoB2FlightObjFlipIndexAmiga[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB2FlightObjFlipIndexAmigaProvider = { ARRAYSIZE(kEoB2FlightObjFlipIndexAmiga), kEoB2FlightObjFlipIndexAmiga }; + +static const byte kEoB2FlightObjShpMapAmiga[45] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, + 0xFF, 0xFF, 0x04, 0xFF, 0x06, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2FlightObjShpMapAmigaProvider = { ARRAYSIZE(kEoB2FlightObjShpMapAmiga), kEoB2FlightObjShpMapAmiga }; + +static const byte kEoB2FlightObjSclIndexAmiga[72] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xff, 0xff, 0x03, 0x03, 0xff, 0xff, 0x03, 0x03, + 0xff, 0xff, 0x03, 0x03, 0xff, 0xff, 0x03, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static const ByteProvider kEoB2FlightObjSclIndexAmigaProvider = { ARRAYSIZE(kEoB2FlightObjSclIndexAmiga), kEoB2FlightObjSclIndexAmiga }; + +static const uint16 kEoB2TransferPortraitFramesAmiga[32] = { + 0x0004, 0x0018, 0x009d, 0x0038, 0x00a2, 0x0018, 0x013c, 0x0039, + 0x0004, 0x0040, 0x009d, 0x0060, 0x00a2, 0x0040, 0x013c, 0x0060, + 0x0004, 0x0068, 0x009d, 0x0089, 0x00a2, 0x0068, 0x013c, 0x0089, + 0x0004, 0x0094, 0x002e, 0x009e, 0x0110, 0x0094, 0x013a, 0x009e +}; + +static const Uint16Provider kEoB2TransferPortraitFramesAmigaProvider = { ARRAYSIZE(kEoB2TransferPortraitFramesAmiga), kEoB2TransferPortraitFramesAmiga }; + +static const byte kEoB2TransferConvertTableAmiga[49] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x05, 0x06, + 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x0D, 0x00, 0x0E, + 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x00, 0x00, + 0x17, 0x18, 0x22, 0x24, 0x23, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x31, 0x30, 0x32, 0x33, 0x00, 0x35, 0x34, 0x36, + 0x37 +}; + +static const ByteProvider kEoB2TransferConvertTableAmigaProvider = { ARRAYSIZE(kEoB2TransferConvertTableAmiga), kEoB2TransferConvertTableAmiga }; + +static const byte kEoB2TransferItemTableAmiga[60] = { + 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2TransferItemTableAmigaProvider = { ARRAYSIZE(kEoB2TransferItemTableAmiga), kEoB2TransferItemTableAmiga }; + +static const uint32 kEoB2TransferExpTableAmiga[6] = { + 0x000F423F, 0x000B71AF, 0x000DBB9F, 0x0006B6BF, 0x000DBB9F, 0x000DBB9F +}; + +static const Uint32Provider kEoB2TransferExpTableAmigaProvider = { ARRAYSIZE(kEoB2TransferExpTableAmiga), kEoB2TransferExpTableAmiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData00Amiga[5] = { + { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 }, + { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 }, + { 0x00, 0, 216, 51, 8, 0, 0, 0, 0, 0 }, + { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData00AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData00Amiga), kEoB2IntroAnimData00Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData01Amiga[5] = { + { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 }, + { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 }, + { 0x00, 0, 216, 51, 7, 0, 0, 0, 0, 0 }, + { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData01AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData01Amiga), kEoB2IntroAnimData01Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData02Amiga[5] = { + { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 }, + { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 }, + { 0x00, 0, 216, 51, 18, 0, 0, 0, 0, 0 }, + { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData02AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData02Amiga), kEoB2IntroAnimData02Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData03Amiga[4] = { + { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 }, + { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData03AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData03Amiga), kEoB2IntroAnimData03Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData04Amiga[3] = { + { 0x01, 0, 282, 8, 1, 0, 0, 0, 0, 0 }, + { 0x01, 0, 282, 8, 1, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData04AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData04Amiga), kEoB2IntroAnimData04Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData05Amiga[4] = { + { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData05AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData05Amiga), kEoB2IntroAnimData05Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData06Amiga[16] = { + { 0x01, 12, 170, 11, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 188, 38, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 203, 63, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 218, 85, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 232, 107, 2, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01, 3, 242, 125, 1, 0, 0, 0, 0, 0 }, + { 0x01, 4, 240, 125, 2, 0, 0, 0, 0, 0 }, + { 0x01, 5, 238, 124, 2, 0, 0, 0, 0, 0 }, + { 0x01, 6, 236, 123, 2, 0, 0, 0, 0, 0 }, + { 0x01, 7, 232, 121, 2, 0, 0, 0, 0, 0 }, + { 0x01, 8, 226, 120, 3, 0, 0, 0, 0, 0 }, + { 0x01, 9, 220, 119, 3, 0, 0, 0, 0, 0 }, + { 0x01, 10, 241, 115, 3, 0, 0, 0, 0, 0 }, + { 0x01, 11, 241, 115, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData06AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData06Amiga), kEoB2IntroAnimData06Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData07Amiga[5] = { + { 0x01, 12, 54, 17, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 80, 53, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 104, 87, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 130, 124, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData07AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData07Amiga), kEoB2IntroAnimData07Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData08Amiga[6] = { + { 0x01, 12, 112, 8, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 126, 34, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 142, 60, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 170, 109, 2, 0, 0, 0, 0, 0 }, + { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData08AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData08Amiga), kEoB2IntroAnimData08Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData09Amiga[4] = { + { 0x05, 0, 184, 64, 6, 0, 30, 8, 3, 16 }, + { 0x05, 0, 184, 64, 6, 0, 33, 8, 3, 16 }, + { 0x05, 0, 184, 64, 6, 0, 36, 8, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData09AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData09Amiga), kEoB2IntroAnimData09Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData10Amiga[10] = { + { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 }, + { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 }, + { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 }, + { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 }, + { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 }, + { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 }, + { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 }, + { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 }, + { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData10AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData10Amiga), kEoB2IntroAnimData10Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData11Amiga[10] = { + { 0x03, 15, 36, 48, 2, 1, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 2, 0, 0, 0, 0 }, + { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 3, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 90, 4, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 3, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 2, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 1, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData11AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData11Amiga), kEoB2IntroAnimData11Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData12Amiga[4] = { + { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 104, 24, 5, 0, 0, 8, 15, 112 }, + { 0x05, 0, 104, 24, 5, 0, 15, 8, 15, 112 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData12AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData12Amiga), kEoB2IntroAnimData12Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData13Amiga[6] = { + { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 }, + { 0x05, 0, 104, 72, 5, 0, 10, 120, 10, 64 }, + { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 }, + { 0x05, 0, 104, 72, 5, 0, 20, 120, 10, 64 }, + { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData13AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData13Amiga), kEoB2IntroAnimData13Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData14Amiga[4] = { + { 0x05, 0, 104, 0, 8, 0, 0, 0, 13, 200 }, + { 0x05, 0, 104, 0, 8, 0, 13, 0, 13, 200 }, + { 0x05, 0, 104, 0, 8, 0, 26, 0, 13, 200 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData14AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData14Amiga), kEoB2IntroAnimData14Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData15Amiga[11] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 6, 112, 72, 6, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 7, 112, 72, 6, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 8, 112, 72, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData15AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData15Amiga), kEoB2IntroAnimData15Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData16Amiga[12] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData16AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData16Amiga), kEoB2IntroAnimData16Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData17Amiga[8] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData17AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData17Amiga), kEoB2IntroAnimData17Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData18Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 11, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 12, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData18AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData18Amiga), kEoB2IntroAnimData18Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData19Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 10, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 12, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData19AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData19Amiga), kEoB2IntroAnimData19Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData20Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 15, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 16, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData20AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData20Amiga), kEoB2IntroAnimData20Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData21Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 10, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData21AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData21Amiga), kEoB2IntroAnimData21Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData22Amiga[2] = { + { 0x05, 0, 104, 32, 3, 0, 20, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData22AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData22Amiga), kEoB2IntroAnimData22Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData23Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 30, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData23AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData23Amiga), kEoB2IntroAnimData23Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData24Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 0, 96, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData24AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData24Amiga), kEoB2IntroAnimData24Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData25Amiga[2] = { + { 0x05, 0, 104, 32, 3, 0, 10, 96, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData25AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData25Amiga), kEoB2IntroAnimData25Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData26Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 20, 96, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData26AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData26Amiga), kEoB2IntroAnimData26Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData27Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 0, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData27AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData27Amiga), kEoB2IntroAnimData27Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData28Amiga[2] = { + { 0x05, 0, 104, 32, 3, 0, 0, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData28AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData28Amiga), kEoB2IntroAnimData28Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData29Amiga[2] = { + { 0x05, 0, 104, 32, 4, 0, 10, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData29AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData29Amiga), kEoB2IntroAnimData29Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData30Amiga[2] = { + { 0x05, 0, 104, 32, 8, 0, 20, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData30AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData30Amiga), kEoB2IntroAnimData30Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData31Amiga[5] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 176, 56, 3, 0, 19, 136, 2, 8 }, + { 0x05, 0, 176, 56, 3, 0, 21, 136, 2, 8 }, + { 0x05, 0, 176, 56, 3, 0, 23, 136, 2, 8 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData31AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData31Amiga), kEoB2IntroAnimData31Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData32Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 }, + { 0x05, 0, 144, 88, 5, 0, 1, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 }, + { 0x05, 0, 176, 56, 2, 0, 23, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 13, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 }, + { 0x05, 0, 144, 88, 6, 0, 1, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 23, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 1, 136, 6, 40 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData32AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData32Amiga), kEoB2IntroAnimData32Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData33Amiga[8] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 80, 64, 0, 0, 1, 136, 2, 16 }, + { 0x05, 0, 248, 64, 3, 0, 7, 136, 2, 16 }, + { 0x05, 0, 80, 64, 0, 0, 3, 136, 2, 16 }, + { 0x05, 0, 248, 64, 3, 0, 9, 136, 2, 16 }, + { 0x05, 0, 80, 64, 0, 0, 5, 136, 2, 16 }, + { 0x05, 0, 248, 64, 3, 0, 11, 136, 2, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData33AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData33Amiga), kEoB2IntroAnimData33Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData34Amiga[5] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 16, 48, 0, 0, 0, 152, 14, 48 }, + { 0x05, 0, 192, 48, 4, 0, 14, 128, 13, 48 }, + { 0x05, 0, 16, 48, 0, 0, 1, 40, 35, 48 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData34AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData34Amiga), kEoB2IntroAnimData34Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData35Amiga[6] = { + { 0x06, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 24, 3, 0, 0, 128, 2, 32 }, + { 0x05, 0, 152, 16, 3, 0, 0, 88, 5, 40 }, + { 0x05, 0, 128, 0, 3, 0, 0, 0, 10, 88 }, + { 0x05, 0, 104, 0, 3, 0, 13, 0, 14, 88 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData35AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData35Amiga), kEoB2IntroAnimData35Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData36Amiga[2] = { + { 0x05, 0, 104, 0, 0, 0, 13, 0, 13, 200 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData36AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData36Amiga), kEoB2IntroAnimData36Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData37Amiga[25] = { + { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 1, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 2, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 3, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 4, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 4, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 54, 4, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 3, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 2, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 1, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 0, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 0, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData37AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData37Amiga), kEoB2IntroAnimData37Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData38Amiga[22] = { + { 0x03, 22, 13, 32, 0, 1, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 2, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 }, + { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 3, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 90, 4, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 3, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 2, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 1, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 0, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData38AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData38Amiga), kEoB2IntroAnimData38Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData39Amiga[3] = { + { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData39AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData39Amiga), kEoB2IntroAnimData39Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData40Amiga[5] = { + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData40AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData40Amiga), kEoB2IntroAnimData40Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes00Amiga[15] = { + { 0, 1, 137, 4, 43 }, + { 1, 5, 137, 4, 54 }, + { 2, 9, 140, 4, 8 }, + { 3, 1, 181, 1, 3 }, + { 4, 9, 154, 1, 3 }, + { 5, 9, 158, 2, 5 }, + { 6, 9, 164, 3, 7 }, + { 7, 9, 172, 3, 11 }, + { 8, 9, 184, 5, 13 }, + { 9, 15, 137, 6, 15 }, + { 10, 15, 153, 2, 21 }, + { 11, 17, 153, 2, 21 }, + { 12, 1, 185, 1, 4 }, + { 13, 1, 190, 1, 1 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes00AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes00Amiga), kEoB2IntroShapes00Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes01Amiga[2] = { + { 0, 1, 137, 1, 16 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes01AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes01Amiga), kEoB2IntroShapes01Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes04Amiga[10] = { + { 15, 2, 0, 32, 14 }, + { 16, 5, 16, 5, 8 }, + { 17, 2, 26, 32, 19 }, + { 18, 0, 140, 35, 10 }, + { 19, 21, 16, 3, 8 }, + { 20, 0, 47, 22, 10 }, + { 21, 0, 59, 31, 10 }, + { 22, 0, 71, 36, 39 }, + { 23, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes04AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes04Amiga), kEoB2IntroShapes04Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes07Amiga[18] = { + { -9, 1, 136, 6, 40 }, + { -1, 7, 136, 6, 40 }, + { -2, 13, 136, 6, 40 }, + { 3, 19, 136, 2, 16 }, + { 4, 21, 136, 2, 16 }, + { 5, 23, 136, 2, 16 }, + { 6, 19, 152, 1, 8 }, + { 7, 20, 152, 1, 8 }, + { 8, 21, 152, 1, 8 }, + { -10, 25, 136, 2, 16 }, + { -11, 27, 136, 2, 16 }, + { -12, 29, 136, 2, 16 }, + { -13, 31, 136, 2, 16 }, + { -14, 25, 152, 2, 16 }, + { -15, 27, 152, 2, 16 }, + { -16, 29, 152, 2, 16 }, + { -17, 31, 152, 2, 16 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes07AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes07Amiga), kEoB2IntroShapes07Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes13Amiga[10] = { + { 25, 2, 0, 32, 14 }, + { 26, 5, 16, 5, 8 }, + { 27, 2, 26, 32, 19 }, + { 28, 0, 140, 35, 10 }, + { 29, 21, 16, 3, 8 }, + { 30, 0, 47, 22, 10 }, + { 31, 0, 59, 31, 10 }, + { 32, 0, 71, 36, 39 }, + { 33, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes13AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes13Amiga), kEoB2IntroShapes13Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes14Amiga[10] = { + { 35, 2, 0, 32, 14 }, + { 36, 5, 16, 5, 8 }, + { 37, 2, 26, 32, 19 }, + { 38, 0, 140, 35, 10 }, + { 39, 21, 16, 3, 8 }, + { 40, 0, 47, 22, 10 }, + { 41, 0, 59, 31, 10 }, + { 42, 0, 71, 36, 39 }, + { 43, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes14AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes14Amiga), kEoB2IntroShapes14Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes15Amiga[10] = { + { 45, 2, 0, 32, 14 }, + { 46, 5, 16, 5, 8 }, + { 47, 2, 26, 32, 19 }, + { 48, 0, 140, 35, 10 }, + { 49, 21, 16, 3, 8 }, + { 50, 0, 47, 22, 10 }, + { 51, 0, 59, 31, 10 }, + { 52, 0, 71, 36, 39 }, + { 53, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes15AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes15Amiga), kEoB2IntroShapes15Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData00Amiga[11] = { + { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 136, 8, 8, 0, 5, 136, 11, 48 }, + { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 88, 4, 0, 0, 88, 8, 48 }, + { 0x02, 3, 80, 8, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 88, 4, 0, 8, 88, 8, 48 }, + { 0x05, 0, 232, 88, 4, 0, 16, 88, 8, 48 }, + { 0x02, 2, 232, 88, 4, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData00AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData00Amiga), kEoB2FinaleAnimData00Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData01Amiga[9] = { + { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 136, 8, 12, 0, 5, 136, 11, 48 }, + { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 88, 6, 0, 0, 88, 8, 48 }, + { 0x05, 0, 232, 88, 6, 0, 8, 88, 8, 48 }, + { 0x05, 0, 232, 88, 6, 0, 16, 88, 8, 48 }, + { 0x02, 2, 232, 88, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData01AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData01Amiga), kEoB2FinaleAnimData01Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData02Amiga[4] = { + { 0x05, 0, 232, 112, 6, 0, 24, 176, 3, 16 }, + { 0x05, 0, 232, 112, 6, 0, 27, 176, 3, 16 }, + { 0x05, 0, 232, 112, 6, 0, 30, 176, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData02AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData02Amiga), kEoB2FinaleAnimData02Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData03Amiga[6] = { + { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 }, + { 0x05, 0, 232, 112, 3, 0, 24, 176, 3, 16 }, + { 0x02, 3, 80, 8, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 112, 3, 0, 27, 176, 3, 16 }, + { 0x05, 0, 232, 112, 3, 0, 30, 176, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData03AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData03Amiga), kEoB2FinaleAnimData03Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData04Amiga[8] = { + { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 104, 40, 3, 0, 32, 88, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 32, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 24, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 16, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 0, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 24, 88, 8, 88 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData04AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData04Amiga), kEoB2FinaleAnimData04Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData05Amiga[7] = { + { 0x05, 0, 232, 112, 0, 0, 24, 176, 3, 16 }, + { 0x05, 0, 128, 40, 4, 0, 33, 176, 2, 16 }, + { 0x05, 0, 232, 112, 0, 0, 27, 176, 3, 16 }, + { 0x05, 0, 128, 40, 4, 0, 35, 176, 2, 16 }, + { 0x05, 0, 232, 112, 0, 0, 30, 176, 3, 16 }, + { 0x05, 0, 128, 40, 4, 0, 37, 176, 2, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData05AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData05Amiga), kEoB2FinaleAnimData05Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData06Amiga[2] = { + { 0x05, 0, 104, 40, 0, 0, 16, 136, 8, 48 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData06AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData06Amiga), kEoB2FinaleAnimData06Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData07Amiga[6] = { + { 0x05, 0, 208, 80, 4, 0, 0, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 6, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 12, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 18, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 24, 128, 6, 56 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData07AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData07Amiga), kEoB2FinaleAnimData07Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData08Amiga[3] = { + { 0x05, 0, 224, 56, 3, 0, 0, 184, 4, 16 }, + { 0x05, 0, 224, 56, 0, 0, 4, 184, 4, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData08AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData08Amiga), kEoB2FinaleAnimData08Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData09Amiga[8] = { + { 0x01, 1, -10, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 0, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 10, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 20, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 30, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 40, 40, 2, 0, 0, 0, 0, 0 }, + { 0x02, 2, 48, 40, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData09AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData09Amiga), kEoB2FinaleAnimData09Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData10Amiga[14] = { + { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 32, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 28, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 13, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 }, + { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData10AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData10Amiga), kEoB2FinaleAnimData10Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData11Amiga[18] = { + { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 }, + { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData11AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData11Amiga), kEoB2FinaleAnimData11Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData12Amiga[23] = { + { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 }, + { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData12AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData12Amiga), kEoB2FinaleAnimData12Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData13Amiga[23] = { + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData13AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData13Amiga), kEoB2FinaleAnimData13Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData14Amiga[24] = { + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData14AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData14Amiga), kEoB2FinaleAnimData14Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData15Amiga[19] = { + { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData15AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData15Amiga), kEoB2FinaleAnimData15Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData16Amiga[13] = { + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 168, 16, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData16AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData16Amiga), kEoB2FinaleAnimData16Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData17Amiga[20] = { + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData17AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData17Amiga), kEoB2FinaleAnimData17Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData18Amiga[28] = { + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 0, 0, 16, 80, 16, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData18AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData18Amiga), kEoB2FinaleAnimData18Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData19Amiga[7] = { + { 0x05, 0, 80, 80, 4, 0, 0, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 6, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 12, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 18, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 24, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 30, 128, 6, 56 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData19AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData19Amiga), kEoB2FinaleAnimData19Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData20Amiga[3] = { + { 0x05, 0, 96, 56, 3, 0, 0, 184, 4, 16 }, + { 0x05, 0, 96, 56, 0, 0, 4, 184, 4, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData20AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData20Amiga), kEoB2FinaleAnimData20Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes00Amiga[4] = { + { -1, 16, 0, 11, 48 }, + { -2, 28, 80, 8, 48 }, + { -3, 9, 0, 5, 40 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes00AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes00Amiga), kEoB2FinaleShapes00Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes03Amiga[3] = { + { -1, 30, 0, 8, 96 }, + { -2, 30, 104, 10, 96 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes03AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes03Amiga), kEoB2FinaleShapes03Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes07Amiga[4] = { + { 1, 0, 0, 16, 72 }, + { 2, 16, 0, 16, 72 }, + { 3, 0, 72, 16, 72 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes07AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes07Amiga), kEoB2FinaleShapes07Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes09Amiga[9] = { + { 0, 0, 0, 32, 16 }, + { 2, 0, 36, 35, 41 }, + { 3, 0, 77, 24, 17 }, + { 4, 0, 94, 15, 33 }, + { 5, 24, 77, 10, 17 }, + { 6, 16, 99, 23, 69 }, + { -10, 0, 136, 8, 64 }, + { -11, 8, 136, 8, 64 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes09AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes09Amiga), kEoB2FinaleShapes09Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes10Amiga[4] = { + { 1, 0, 0, 40, 30 }, + { 15, 9, 37, 21, 48 }, + { 16, 16, 88, 6, 56 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes10AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes10Amiga), kEoB2FinaleShapes10Amiga }; + +static const byte kEoB2NpcShapeDataAmiga[24] = { + 0x00, 0x00, 0x00, 0x05, 0x39, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x64, 0x05, 0x4f, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x39, 0x06, 0x2b, 0x00, 0x00, 0xff +}; + +static const ByteProvider kEoB2NpcShapeDataAmigaProvider = { ARRAYSIZE(kEoB2NpcShapeDataAmiga), kEoB2NpcShapeDataAmiga }; + +static const byte kEoB2ClassModifierFlagsAmiga[15] = { + 0x01, 0x20, 0x10, 0x02, 0x04, 0x08, 0x05, 0x09, + 0x03, 0x0B, 0x0A, 0x0C, 0x07, 0x05, 0x06 +}; + +static const ByteProvider kEoB2ClassModifierFlagsAmigaProvider = { ARRAYSIZE(kEoB2ClassModifierFlagsAmiga), kEoB2ClassModifierFlagsAmiga }; + +static const byte kEoB2MonsterStepTable02Amiga[8] = { + 0xE0, 0xE1, 0x01, 0x21, 0x20, 0x1F, 0xFF, 0xDF +}; + +static const ByteProvider kEoB2MonsterStepTable02AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable02Amiga), kEoB2MonsterStepTable02Amiga }; + +static const byte kEoB2MonsterStepTable1Amiga[16] = { + 0x01, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, + 0x00, 0x00, 0xFF, 0x20, 0xFF, 0x00, 0x00, 0xE0 +}; + +static const ByteProvider kEoB2MonsterStepTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable1Amiga), kEoB2MonsterStepTable1Amiga }; + +static const byte kEoB2MonsterStepTable2Amiga[8] = { + 0x07, 0xFA, 0x05, 0xFC, 0x03, 0xFE, 0x01, 0x00 +}; + +static const ByteProvider kEoB2MonsterStepTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable2Amiga), kEoB2MonsterStepTable2Amiga }; + +static const byte kEoB2MonsterStepTable3Amiga[8] = { + 0xF9, 0x06, 0xFB, 0x04, 0xFD, 0x02, 0xFF, 0x00 +}; + +static const ByteProvider kEoB2MonsterStepTable3AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable3Amiga), kEoB2MonsterStepTable3Amiga }; + +static const byte kEoB2MonsterCloseAttPosTable1Amiga[4] = { + 0x00, 0x01, 0x03, 0x02 +}; + +static const ByteProvider kEoB2MonsterCloseAttPosTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable1Amiga), kEoB2MonsterCloseAttPosTable1Amiga }; + +static const byte kEoB2MonsterCloseAttPosTable22Amiga[16] = { + 0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x01, 0x03, + 0x00, 0x01, 0x02, 0x03, 0x03, 0x01, 0x02, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttPosTable22AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable22Amiga), kEoB2MonsterCloseAttPosTable22Amiga }; + +static const byte kEoB2MonsterCloseAttUnkTableAmiga[10] = { + 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttUnkTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttUnkTableAmiga), kEoB2MonsterCloseAttUnkTableAmiga }; + +static const byte kEoB2MonsterCloseAttChkTable1Amiga[16] = { + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttChkTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable1Amiga), kEoB2MonsterCloseAttChkTable1Amiga }; + +static const byte kEoB2MonsterCloseAttChkTable2Amiga[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttChkTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable2Amiga), kEoB2MonsterCloseAttChkTable2Amiga }; + +static const byte kEoB2MonsterCloseAttDstTable1Amiga[16] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x00, 0x01, 0x02, 0x03, 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB2MonsterCloseAttDstTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable1Amiga), kEoB2MonsterCloseAttDstTable1Amiga }; + +static const byte kEoB2MonsterCloseAttDstTable2Amiga[48] = { + 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x05, 0x05, 0x03, 0x01, 0x04, + 0x02, 0x00, 0x01, 0x03, 0x05, 0x00, 0x02, 0x04, + 0x04, 0x05, 0x02, 0x03, 0x00, 0x01, 0x05, 0x04, + 0x03, 0x02, 0x01, 0x00, 0x00, 0x02, 0x04, 0x01, + 0x03, 0x05, 0x04, 0x02, 0x00, 0x05, 0x03, 0x01 +}; + +static const ByteProvider kEoB2MonsterCloseAttDstTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable2Amiga), kEoB2MonsterCloseAttDstTable2Amiga }; + +static const byte kEoB2MonsterProximityTableAmiga[32] = { + 0x02, 0x03, 0x00, 0x01, 0x03, 0x02, 0x01, 0x00, + 0x00, 0x02, 0x01, 0x03, 0x02, 0x00, 0x03, 0x01, + 0x01, 0x00, 0x03, 0x02, 0x00, 0x01, 0x02, 0x03, + 0x03, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02, 0x00 +}; + +static const ByteProvider kEoB2MonsterProximityTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterProximityTableAmiga), kEoB2MonsterProximityTableAmiga }; + +static const byte kEoB2FindBlockMonstersTableAmiga[64] = { + 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02, + 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00, + 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02, + 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00, + 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02, + 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00, + 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02, + 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00 +}; + +static const ByteProvider kEoB2FindBlockMonstersTableAmigaProvider = { ARRAYSIZE(kEoB2FindBlockMonstersTableAmiga), kEoB2FindBlockMonstersTableAmiga }; + +static const byte kEoB2MonsterDirChangeTableAmiga[16] = { + 0xff, 0x06, 0x02, 0xff, 0x00, 0x07, 0x01, 0xff, + 0x04, 0x05, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static const ByteProvider kEoB2MonsterDirChangeTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterDirChangeTableAmiga), kEoB2MonsterDirChangeTableAmiga }; + +static const uint16 kEoB2EncodeMonsterDefsAmiga[72] = { + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0028, 0x000c, 0x0038, + 0x0013, 0x0028, 0x000c, 0x0038, 0x001f, 0x0000, 0x0007, 0x0060, + 0x0000, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0000, 0x0007, 0x0060, + 0x000e, 0x0000, 0x0007, 0x0060, 0x0015, 0x0000, 0x0007, 0x0060, + 0x001c, 0x0000, 0x0007, 0x0060, 0x0000, 0x0060, 0x0007, 0x0060, + 0x0000, 0x0000, 0x000a, 0x0058, 0x000a, 0x0000, 0x000a, 0x0058, + 0x0014, 0x0000, 0x000a, 0x0058, 0x001e, 0x0000, 0x000a, 0x0058, + 0x0000, 0x0058, 0x000a, 0x0058, 0x000a, 0x0058, 0x000a, 0x0058 +}; + +static const Uint16Provider kEoB2EncodeMonsterDefsAmigaProvider = { ARRAYSIZE(kEoB2EncodeMonsterDefsAmiga), kEoB2EncodeMonsterDefsAmiga }; + +static const EoBCharacter kEoB2NpcPresetsAmiga[6] = { + { 0x00, 0x01, "Insal", + 15, 15, 0, 0, 13, 13, 11, 11, 17, 17, 16, 16, 9, 9, + 3, 39, 10, 0, 10, 5, 5, -1, 8, { 6, 0, 0 }, + { 0x00006ADA, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Calandra", + 18, 18, 36, 36, 13, 13, 8, 8, 15, 15, 16, 16, 14, 14, + 4, 76, 10, 0, 1, 0, 2, -2, 12, { 9, 0, 0 }, + { 0x0003DF35, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Shorn", + 15, 15, 0, 0, 14, 14, 13, 13, 14, 14, 13, 13, 16, 16, + 40, 40, 10, 0, 6, 4, 3, -3, 100, { 8, 0, 0 }, + { 0x00021730, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "San-raal", + 11, 11, 0, 0, 18, 18, 13, 13, 14, 14, 16, 16, 9, 9, + 28, 28, 10, 0, 2, 3, 5, -4, 100, { 8, 0, 0 }, + { 0x00017AF0, 0x00000000, 0x00000000 }, 0x096B4566, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Tanglor", + 16, 16, 0, 0, 13, 13, 16, 16, 15, 15, 11, 11, 12, 12, + 53, 53, 9, 0, 4, 6, 1, -5, 100, { 7, 7, 0 }, + { 0x00010FC2, 0x00010FC2, 0x00000000 }, 0xFFFFFFFF, + { 0x0004, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Amber", + 14, 14, 0, 0, 17, 17, 12, 12, 18, 18, 9, 9, 17, 17, + 36, 36, 10, 0, 3, 10, 1, -6, 100, { 7, 7, 0 }, + { 0x0000FAE6, 0x0000FAE6, 0x00000000 }, 0x00294566, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } } +}; + +static const EoBCharacterProvider kEoB2NpcPresetsAmigaProvider = { ARRAYSIZE(kEoB2NpcPresetsAmiga), kEoB2NpcPresetsAmiga }; + +static const byte kEoB2DreamStepsAmiga[14] = { + 0x01, 0x02, 0x03, 0x02, 0x01, 0x00, 0x01, 0x02, + 0x03, 0x03, 0x02, 0x01, 0x00, 0xFF +}; + +static const ByteProvider kEoB2DreamStepsAmigaProvider = { ARRAYSIZE(kEoB2DreamStepsAmiga), kEoB2DreamStepsAmiga }; + +static const byte kEoB2HornSoundsAmiga[4] = { + 0x40, 0x41, 0x42, 0x43 +}; + +static const ByteProvider kEoB2HornSoundsAmigaProvider = { ARRAYSIZE(kEoB2HornSoundsAmiga), kEoB2HornSoundsAmiga }; + +static const uint16 kEoB2WallOfForceDsXAmiga[18] = { + 0xFFCC, 0xFFF4, 0x001C, 0x0044, 0x006C, 0x0094, 0x00BC, 0xFFB8, + 0xFFF8, 0x0038, 0x0078, 0x00B8, 0xFFC8, 0x0028, 0x0088, 0x0000, + 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB2WallOfForceDsXAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceDsXAmiga), kEoB2WallOfForceDsXAmiga }; + +static const byte kEoB2WallOfForceDsYAmiga[3] = { + 0x20, 0x18, 0x10 +}; + +static const ByteProvider kEoB2WallOfForceDsYAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceDsYAmiga), kEoB2WallOfForceDsYAmiga }; + +static const byte kEoB2WallOfForceNumWAmiga[3] = { + 0x01, 0x02, 0x03 +}; + +static const ByteProvider kEoB2WallOfForceNumWAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceNumWAmiga), kEoB2WallOfForceNumWAmiga }; + +static const byte kEoB2WallOfForceNumHAmiga[3] = { + 0x02, 0x06, 0x09 +}; + +static const ByteProvider kEoB2WallOfForceNumHAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceNumHAmiga), kEoB2WallOfForceNumHAmiga }; + +static const byte kEoB2WallOfForceShpIdAmiga[3] = { + 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB2WallOfForceShpIdAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceShpIdAmiga), kEoB2WallOfForceShpIdAmiga }; + +static const byte kEoB2DscShapeIndexAmiga[36] = { + 0x01, 0x01, 0x04, 0x0A, 0x04, 0x08, 0x04, 0x01, + 0x04, 0xF8, 0x04, 0xF6, 0x00, 0x00, 0x03, 0x09, + 0x03, 0x07, 0x03, 0x01, 0x03, 0xF9, 0x03, 0xF7, + 0x02, 0x06, 0x02, 0x01, 0x02, 0xFA, 0x01, 0x05, + 0x01, 0x01, 0x01, 0xFB +}; + +static const ByteProvider kEoB2DscShapeIndexAmigaProvider = { ARRAYSIZE(kEoB2DscShapeIndexAmiga), kEoB2DscShapeIndexAmiga }; + +static const uint16 kEoB2DscXAmiga[18] = { + 0xFF70, 0xFFA0, 0xFFD0, 0x0000, 0x0030, 0x0060, 0x0090, 0xFF60, + 0xFFB0, 0x0000, 0x0050, 0x00A0, 0xFF80, 0x0000, 0x0080, 0x0000, + 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB2DscXAmigaProvider = { ARRAYSIZE(kEoB2DscXAmiga), kEoB2DscXAmiga }; + +static const byte kEoB2DscTileIndexAmiga[18] = { + 0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07, + 0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F, + 0x11, 0x10 +}; + +static const ByteProvider kEoB2DscTileIndexAmigaProvider = { ARRAYSIZE(kEoB2DscTileIndexAmiga), kEoB2DscTileIndexAmiga }; + +static const byte kEoB2DscDimData1Amiga[324] = { + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd8, 0xd7, 0xd8, 0xd8, 0x02, 0xd8, 0xd8, 0xd8, + 0xd8, 0xfe, 0xd7, 0xd8, 0xd8, 0xd8, 0xd7, 0x03, + 0xd8, 0xfd, 0xd8, 0xd8, 0xd8, 0xfe, 0xd8, 0x08, + 0xd8, 0xd8, 0xd8, 0xfe, 0xd7, 0x06, 0xd8, 0xd8, + 0xfa, 0x03, 0xd8, 0xfd, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xfa, 0xd7, + 0x10, 0xd8, 0xfd, 0xd7, 0x13, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xf2, 0xd8, 0x14, 0xd8, 0xd8, + 0xd8, 0xf0, 0xd7, 0x14, 0xd8, 0xed, 0x10, 0xd8, + 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8, 0xec, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd7, 0x14, 0xd8, 0xed, + 0xd7, 0xd8, 0xd8, 0x13, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0x06, 0xd8, 0xd8, 0xfa, 0x03, 0xd8, 0xfd, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xfa, 0xd8, 0x10, 0xd8, 0xfd, 0xd7, + 0x13, 0xfd, 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xf0, 0xd8, 0xd8, + 0xd8, 0xed, 0x10, 0xd8, 0xd8, 0x13, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x03, 0xd8, 0xfd, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xfd, 0xd8, + 0x13, 0xfd, 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xed, 0xd8, 0xd8, 0xd8, 0x13, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8 +}; + +static const ByteProvider kEoB2DscDimData1AmigaProvider = { ARRAYSIZE(kEoB2DscDimData1Amiga), kEoB2DscDimData1Amiga }; + +static const byte kEoB2DscDimData2Amiga[648] = { + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x00, 0x16, 0x16, 0x00, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x02, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x02, 0x16, 0x00, 0x04, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x16, 0x00, 0x00, 0x03, + 0x00, 0x16, 0x03, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x02, 0x16, 0x00, 0x16, 0x00, 0x08, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x02, + 0x16, 0x00, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16, + 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x00, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x08, 0x0e, + 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x06, 0x10, + 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x0e, 0x16, + 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x10, 0x16, 0x16, 0x00, 0x00, 0x14, + 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x14, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x12, 0x16, 0x14, 0x16, 0x00, 0x16, 0x13, 0x16, + 0x16, 0x00, 0x00, 0x16, 0x00, 0x16, 0x00, 0x13, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x00, 0x16, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16, + 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x00, 0x16, + 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x07, 0x0f, + 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x10, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x13, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x03, 0x16, 0x00, 0x16, + 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x13, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16 +}; + +static const ByteProvider kEoB2DscDimData2AmigaProvider = { ARRAYSIZE(kEoB2DscDimData2Amiga), kEoB2DscDimData2Amiga }; + +static const byte kEoB2DscBlockMapAmiga[12] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB2DscBlockMapAmigaProvider = { ARRAYSIZE(kEoB2DscBlockMapAmiga), kEoB2DscBlockMapAmiga }; + +static const byte kEoB2DscDimMapAmiga[18] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, + 0x03, 0x03 +}; + +static const ByteProvider kEoB2DscDimMapAmigaProvider = { ARRAYSIZE(kEoB2DscDimMapAmiga), kEoB2DscDimMapAmiga }; + +static const byte kEoB2DscBlockIndexAmiga[72] = { + 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xbe, + 0xbf, 0xc0, 0xc1, 0xc2, 0xdf, 0xe0, 0xe1, 0xff, + 0x00, 0x01, 0xa3, 0xc3, 0xe3, 0x03, 0x23, 0x43, + 0x63, 0xc2, 0xe2, 0x02, 0x22, 0x42, 0xe1, 0x01, + 0x21, 0xe0, 0x00, 0x20, 0x63, 0x62, 0x61, 0x60, + 0x5f, 0x5e, 0x5d, 0x42, 0x41, 0x40, 0x3f, 0x3e, + 0x21, 0x20, 0x1f, 0x01, 0x00, 0xff, 0x5d, 0x3d, + 0x1d, 0xfd, 0xdd, 0xbd, 0x9d, 0x3e, 0x1e, 0xfe, + 0xde, 0xbe, 0x1f, 0xff, 0xdf, 0x20, 0x00, 0xe0 +}; + +static const ByteProvider kEoB2DscBlockIndexAmigaProvider = { ARRAYSIZE(kEoB2DscBlockIndexAmiga), kEoB2DscBlockIndexAmiga }; + +static const char *const kEoB2SoundMapAmiga[120] = { + "", + "button", + "", + "door", + "door", + "slam", + "button", + "button", + "", + "eat", + "magica", + "throw", + "plate", + "passage", + "unlock", + "teleport", + "undead", + "pit", + "itemland", + "", + "", + "playhit", + "death", + "text", + "electric", + "transmute", + "dart", + "", + "", + "bump", + "", + "electric", + "playswing", + "", + "panel", + "explode", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "button", + "", + "drop", + "text", + "magicb", + "lock", + "", + "magicb", + "magicb", + "Missile", + "", + "burnhands", + "electric", + "fireball", + "", + "magica", + "magica", + "magica", + "magicb", + "magicb", + "acid", + "magicb", + "fireball", + "acid", + "magica", + "magicb", + "magicb", + "undead", + "magica", + "magica", + "magica", + "magicb", + "cause", + "magicb", + "magicb", + "magica", + "magicb", + "magica", + "magica", + "magica", + "magica", + "cause", + "fireball", + "magica" +}; + +static const StringListProvider kEoB2SoundMapAmigaProvider = { ARRAYSIZE(kEoB2SoundMapAmiga), kEoB2SoundMapAmiga }; + +static const char *const kEoB2SoundMapExtraAmiga[63] = { + "", + "2Guards", + "Calandra", + "Dream", + "Dwarf", + "GrdInsal", + "Insal", + "x", + "Kheban", + "", + "OldLady", + "MagicMth", + "Castle1", + "BdrTrick", + "", + "2Cleric", + "Calandra", + "1Cleric", + "MagicMth", + "MagicMth", + "2Clerics", + "4WindDr", + "x", + "BloodDr", + "", + "Beholder", + "BdrTrick", + "MagicMth", + "DranSilv", + "MagicMth", + "1Cleric", + "Mantis2", + "Priest", + "Kheban", + "Tanglor1", + "Tanglor2", + "", + "MagicMth", + "MagicMth", + "Dran1Azr", + "x", + "x", + "FrostGt", + "FrostDed", + "Dran2Azr", + "Dran3Azr", + "BdrTrick", + "x", + "MagicMth", + "", + "Dran1Crm", + "Dran2Crm", + "Dran3Crm", + "Dran4Crm", + "DranDrag", + "EndTheme", + "DyingMan", + "Insal", + "Ojel", + "StoneGt", + "Implode", + "x", + "" +}; + +static const StringListProvider kEoB2SoundMapExtraAmigaProvider = { ARRAYSIZE(kEoB2SoundMapExtraAmiga), kEoB2SoundMapExtraAmiga }; + +static const byte kEoB2SoundIndex1Amiga[98] = { + 0xff, 0x01, 0xfd, 0x07, 0xfd, 0x04, 0xfe, 0x0a, + 0xfe, 0xff, 0x01, 0xfd, 0x07, 0x08, 0xff, 0x03, + 0x05, 0x09, 0x0b, 0x04, 0xfe, 0x0a, 0xfe, 0xff, + 0x00, 0xfd, 0x0c, 0xfd, 0xff, 0x01, 0xfd, 0x0d, + 0xfd, 0xff, 0x01, 0xfd, 0x08, 0xfd, 0xff, 0x06, + 0xfe, 0x07, 0xfe, 0x05, 0xfe, 0x0e, 0xfe, 0xff, + 0x05, 0xfe, 0x0f, 0xfe, 0xff, 0xfe, 0xfe, 0x0d, + 0xfe, 0xff, 0xff, 0x00, 0xfd, 0x0d, 0x0c, 0x00, + 0xfe, 0x0b, 0xfe, 0xff, 0x00, 0xfe, 0x0b, 0xfe, + 0xff, 0xfe, 0x01, 0x0b, 0x0d, 0xff, 0x02, 0xfd, + 0x10, 0xfd, 0xff, 0x00, 0x01, 0x11, 0xfe, 0xff, + 0x00, 0x01, 0x0e, 0x12, 0x02, 0x01, 0x11, 0xfe, + 0xff, 0x00 +}; + +static const ByteProvider kEoB2SoundIndex1AmigaProvider = { ARRAYSIZE(kEoB2SoundIndex1Amiga), kEoB2SoundIndex1Amiga }; + +static const byte kEoB2SoundIndex2Amiga[17] = { + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x03, + 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, + 0x05 +}; + +static const ByteProvider kEoB2SoundIndex2AmigaProvider = { ARRAYSIZE(kEoB2SoundIndex2Amiga), kEoB2SoundIndex2Amiga }; + +static const char *const kEoB2SoundFilesIngame2Amiga[6] = { + "DUNG.OUT", + "FOREST.OUT", + "MEZZ.OUT", + "SILVER.OUT", + "AZURE.OUT", + "CRIMSON.OUT" +}; + +static const StringListProvider kEoB2SoundFilesIngame2AmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIngame2Amiga), kEoB2SoundFilesIngame2Amiga }; + +static const char *const kEoB2LevelSoundFiles1Amiga[19] = { + "Move", + "Move2", + "Move3", + "LeechMov", + "SpiderMov", + "Flap", + "MantisMov", + "Blade", + "FlindAtk", + "Rustatk", + "SloshSuck", + "Claw", + "BeastAtk", + "Magick", + "Spear", + "Growl", + "Punch", + "HoundAtk", + "FlayerAtk" +}; + +static const StringListProvider kEoB2LevelSoundFiles1AmigaProvider = { ARRAYSIZE(kEoB2LevelSoundFiles1Amiga), kEoB2LevelSoundFiles1Amiga }; + +static const char *const kEoB2LevelSoundFiles2Amiga[19] = { + "Walk1m", + "Walk2m", + "Walk3m", + "Leechm", + "Spiderm", + "Flapm", + "Mantism", + "Blade", + "Flind", + "Rust", + "Slosh", + "Claw", + "Beast", + "Magick", + "Spear", + "Growl", + "Punch", + "Hound", + "Flayer" +}; + +static const StringListProvider kEoB2LevelSoundFiles2AmigaProvider = { ARRAYSIZE(kEoB2LevelSoundFiles2Amiga), kEoB2LevelSoundFiles2Amiga }; + +static const char *const kEoB2SoundFilesIntroAmiga[10] = { + "TELEPORT.CPS", + "BIGPIPE3A.CPS", + "PANFLUTE5.CPS", + "OUTTAKES1.CPS", + "OUTTAKES2.CPS", + "FIN.SAM", + "INTRO.SAM", + "FLUTE3C.CPS", + "CHARGEN2.CPS", + "CHARGEN3.CPS" +}; + +static const StringListProvider kEoB2SoundFilesIntroAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIntroAmiga), kEoB2SoundFilesIntroAmiga }; + +static const char *const kEoB2SoundFilesIngameAmiga[7] = { + "OUTTAKES1.CPS", + "OUTTAKES2.CPS", + "SFX1.CPS", + "SFX2.CPS", + "SFX3.CPS", + "SFX4.CPS", + "OUTTAKES3.CPS" +}; + +static const StringListProvider kEoB2SoundFilesIngameAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIngameAmiga), kEoB2SoundFilesIngameAmiga }; + +static const char *const kEoB2SoundFilesFinaleAmiga[5] = { + "BIGPIPE3A.CPS", + "OUTTAKES1.CPS", + "OUTTAKES2.CPS", + "FIN.SAM", + "FINALE.SAM" +}; + +static const StringListProvider kEoB2SoundFilesFinaleAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesFinaleAmiga), kEoB2SoundFilesFinaleAmiga }; + +static const byte kEoB2MonsterSoundPatchDataAmiga[60] = { + 0x61, 0x27, 0x24, 0x22, 0x27, 0x25, 0x32, 0x27, 0x25, + 0x87, 0x27, 0x25, 0xa7, 0x27, 0x25, 0x97, 0x27, 0x25, + 0xb7, 0x27, 0x25, 0x08, 0x27, 0x25, 0x28, 0x27, 0x25, + 0x48, 0x27, 0x25, 0x68, 0x27, 0x25, 0x0a, 0x27, 0x25, + 0x1a, 0x27, 0x25, 0x0c, 0x27, 0x25, 0x4e, 0x27, 0x25, + 0x6e, 0x27, 0x25, 0x8e, 0x27, 0x25, 0xae, 0x27, 0x25, + 0x0f, 0x27, 0x25, 0x1f, 0x27, 0x25 +}; + +static const ByteProvider kEoB2MonsterSoundPatchDataAmigaProvider = { ARRAYSIZE(kEoB2MonsterSoundPatchDataAmiga), kEoB2MonsterSoundPatchDataAmiga }; |