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 };