aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devtools/create_kyradat/create_kyradat.cpp15
-rw-r--r--devtools/create_kyradat/create_kyradat.h13
-rw-r--r--devtools/create_kyradat/games.cpp345
-rw-r--r--devtools/create_kyradat/resources.cpp411
-rw-r--r--devtools/create_kyradat/resources/eob2_amiga.h2775
-rw-r--r--devtools/create_kyradat/resources/eob2_amiga_english.h1055
-rw-r--r--devtools/create_kyradat/resources/eob2_amiga_german.h1057
-rw-r--r--devtools/create_kyradat/resources/eob2_dos_english.h2
-rw-r--r--devtools/create_kyradat/resources/eob2_dos_german.h4
-rw-r--r--dists/engine-data/kyra.datbin1650618 -> 1696846 bytes
-rw-r--r--engines/kyra/resource/resource.h13
-rw-r--r--engines/kyra/resource/staticres.cpp2
-rw-r--r--engines/kyra/resource/staticres_eob.cpp21
-rw-r--r--engines/kyra/sequence/sequences_darkmoon.cpp4
-rw-r--r--engines/kyra/sound/sound_amiga_eob.cpp4
15 files changed, 5687 insertions, 34 deletions
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 0c43b4fcda..8f5b7b6de3 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -45,7 +45,7 @@
enum {
- kKyraDatVersion = 93
+ kKyraDatVersion = 94
};
const ExtractFilename extractFilenames[] = {
@@ -414,10 +414,10 @@ const ExtractFilename extractFilenames[] = {
{ kEoBBaseSoundFilesIntro, kStringList, false },
{ kEoBBaseSoundFilesIngame, kStringList, false },
{ kEoBBaseSoundFilesFinale, kStringList, false },
+ { kEoBBaseLevelSoundFiles1, kStringList, false },
+ { kEoBBaseLevelSoundFiles2, kStringList, false },
// EYE OF THE BEHOLDER I
- { kEoB1LevelSoundFiles1, kStringList, false },
- { kEoB1LevelSoundFiles2, kStringList, false },
{ kEoB1MainMenuStrings, kStringList, true },
{ kEoB1BonusStrings, kStringList, true },
@@ -552,6 +552,9 @@ const ExtractFilename extractFilenames[] = {
{ kEoB2IntroShapes01, kEoB2ShapeData, false },
{ kEoB2IntroShapes04, kEoB2ShapeData, false },
{ kEoB2IntroShapes07, kEoB2ShapeData, false },
+ { kEoB2IntroShapes13, kEoB2ShapeData, false },
+ { kEoB2IntroShapes14, kEoB2ShapeData, false },
+ { kEoB2IntroShapes15, kEoB2ShapeData, false },
{ kEoB2IntroCpsDataStreet1, kRawData, false },
{ kEoB2IntroCpsDataStreet2, kRawData, false },
{ kEoB2IntroCpsDataDoorway1, kRawData, false },
@@ -867,6 +870,12 @@ const ExtractFilename extractFilenames[] = {
{ kEoB2PcmSoundEffectsIntro, kRawData, false },
{ kEoB2PcmSoundEffectsFinale, kRawData, false },
+ { kEoB2SoundMapExtra, kStringList, false },
+ { kEoB2SoundIndex1, kRawData, false },
+ { kEoB2SoundIndex2, kRawData, false },
+ { kEoB2SoundFilesIngame2, kStringList, false },
+ { kEoB2MonsterSoundPatchData, kRawData, false },
+
// LANDS OF LORE
// Ingame
diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h
index a37fab34f4..40c725560f 100644
--- a/devtools/create_kyradat/create_kyradat.h
+++ b/devtools/create_kyradat/create_kyradat.h
@@ -418,9 +418,9 @@ enum kExtractID {
kEoBBaseSoundFilesIntro,
kEoBBaseSoundFilesIngame,
kEoBBaseSoundFilesFinale,
+ kEoBBaseLevelSoundFiles1,
+ kEoBBaseLevelSoundFiles2,
- kEoB1LevelSoundFiles1,
- kEoB1LevelSoundFiles2,
kEoB1MainMenuStrings,
kEoB1BonusStrings,
@@ -558,6 +558,9 @@ enum kExtractID {
kEoB2IntroShapes01,
kEoB2IntroShapes04,
kEoB2IntroShapes07,
+ kEoB2IntroShapes13,
+ kEoB2IntroShapes14,
+ kEoB2IntroShapes15,
kEoB2FinaleStrings,
kEoB2CreditsData,
@@ -857,6 +860,12 @@ enum kExtractID {
kEoB2PcmSoundEffectsIntro,
kEoB2PcmSoundEffectsFinale,
+ kEoB2SoundMapExtra,
+ kEoB2SoundIndex1,
+ kEoB2SoundIndex2,
+ kEoB2SoundFilesIngame2,
+ kEoB2MonsterSoundPatchData,
+
kLoLIngamePakFiles,
kLoLCharacterDefs,
kLoLIngameSfxFiles,
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 9457416333..fe7b45f55c 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -113,8 +113,8 @@ const Game eob2Games[] = {
{ kEoB2, kPlatformDOS, kNoSpecial, EN_ANY },
{ kEoB2, kPlatformDOS, kNoSpecial, DE_DEU },
- //{ kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY },
- //{ kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU },
+ { kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY },
+ { kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU },
//{ kEoB2, kPlatformPC98, kNoSpecial, JA_JPN },
@@ -1703,8 +1703,8 @@ const int eob1AmigaNeed[] = {
kEoBBaseNpcPresets,
kEoBBaseSoundMap,
- kEoB1LevelSoundFiles1,
- kEoB1LevelSoundFiles2,
+ kEoBBaseLevelSoundFiles1,
+ kEoBBaseLevelSoundFiles2,
kEoBBaseSoundFilesIntro,
kEoBBaseSoundFilesIngame,
kEoBBaseSoundFilesFinale,
@@ -2322,6 +2322,341 @@ const int eob2FloppyNeed[] = {
-1
};
+const int eob2AmigaNeed[] = {
+ kEoBBaseChargenStrings1,
+ kEoBBaseChargenStrings2,
+ kEoBBaseChargenStartLevels,
+ kEoBBaseChargenStatStrings,
+ kEoBBaseChargenRaceSexStrings,
+ kEoBBaseChargenClassStrings,
+ kEoBBaseChargenAlignmentStrings,
+ kEoBBaseChargenEnterGameStrings,
+ kEoBBaseChargenClassMinStats,
+ kEoBBaseChargenRaceMinStats,
+ kEoBBaseChargenRaceMaxStats,
+
+ kEoBBaseSaveThrowTable1,
+ kEoBBaseSaveThrowTable2,
+ kEoBBaseSaveThrowTable3,
+ kEoBBaseSaveThrowTable4,
+ kEoBBaseSaveThrwLvlIndex,
+ kEoBBaseSaveThrwModDiv,
+ kEoBBaseSaveThrwModExt,
+
+ kEoBBasePryDoorStrings,
+ kEoBBaseWarningStrings,
+
+ kEoBBaseItemSuffixStringsRings,
+ kEoBBaseItemSuffixStringsPotions,
+ kEoBBaseItemSuffixStringsWands,
+
+ kEoBBaseRipItemStrings,
+ kEoBBaseCursedString,
+ kEoBBaseEnchantedString,
+ kEoBBaseMagicObjectStrings,
+ kEoBBaseMagicObjectString5,
+ kEoBBasePatternSuffix,
+ kEoBBasePatternGrFix1,
+ kEoBBasePatternGrFix2,
+ kEoBBaseValidateArmorString,
+ kEoBBaseValidateCursedString,
+ kEoBBaseValidateNoDropString,
+ kEoBBasePotionStrings,
+ kEoBBaseWandStrings,
+ kEoBBaseItemMisuseStrings,
+
+ kEoBBaseTakenStrings,
+ kEoBBasePotionEffectStrings,
+
+ kEoBBaseYesNoStrings,
+ kRpgCommonMoreStrings,
+ kEoBBaseNpcMaxStrings,
+ kEoBBaseOkStrings,
+ kEoBBaseNpcJoinStrings,
+ kEoBBaseCancelStrings,
+ kEoBBaseAbortStrings,
+
+ kEoBBaseMenuStringsMain,
+ kEoBBaseMenuStringsSaveLoad,
+ kEoBBaseMenuStringsOnOff,
+ kEoBBaseMenuStringsSpells,
+ kEoBBaseMenuStringsRest,
+ kEoBBaseMenuStringsDrop,
+ kEoBBaseMenuStringsExit,
+ kEoBBaseMenuStringsStarve,
+ kEoBBaseMenuStringsScribe,
+ kEoBBaseMenuStringsDrop2,
+ kEoBBaseMenuStringsHead,
+ kEoBBaseMenuStringsPoison,
+ kEoBBaseMenuStringsMgc,
+ kEoBBaseMenuStringsPrefs,
+ kEoBBaseMenuStringsRest2,
+ kEoBBaseMenuStringsRest3,
+ kEoBBaseMenuStringsRest4,
+ kEoBBaseMenuStringsDefeat,
+ kEoBBaseMenuStringsTransfer,
+ kEoBBaseMenuStringsSpec,
+ kEoBBaseMenuStringsSpellNo,
+ kEoBBaseMenuYesNoStrings,
+
+ kEoBBaseSpellLevelsMage,
+ kEoBBaseSpellLevelsCleric,
+ kEoBBaseNumSpellsCleric,
+ kEoBBaseNumSpellsWisAdj,
+ kEoBBaseNumSpellsPal,
+ kEoBBaseNumSpellsMage,
+
+ kEoBBaseCharGuiStringsHp,
+ kEoBBaseCharGuiStringsWp2,
+ kEoBBaseCharGuiStringsWr,
+ kEoBBaseCharGuiStringsSt2,
+ kEoBBaseCharGuiStringsIn,
+
+ kEoBBaseCharStatusStrings7,
+ kEoBBaseCharStatusStrings82,
+ kEoBBaseCharStatusStrings9,
+ kEoBBaseCharStatusStrings12,
+ kEoBBaseCharStatusStrings132,
+
+ kEoBBaseLevelGainStrings,
+ kEoBBaseExperienceTable0,
+ kEoBBaseExperienceTable1,
+ kEoBBaseExperienceTable2,
+ kEoBBaseExperienceTable3,
+ kEoBBaseExperienceTable4,
+
+ kEoBBaseBookNumbers,
+ kEoBBaseMageSpellsList,
+ kEoBBaseClericSpellsList,
+ kEoBBaseSpellNames,
+ kEoBBaseMagicStrings1,
+ kEoBBaseMagicStrings2,
+ kEoBBaseMagicStrings3,
+ kEoBBaseMagicStrings4,
+ kEoBBaseMagicStrings6,
+ kEoBBaseMagicStrings7,
+ kEoBBaseMagicStrings8,
+
+ kEoBBaseExpObjectTlMode,
+ kEoBBaseExpObjectTblIndex,
+ kEoBBaseExpObjectShpStart,
+ kEoBBaseExpObjectTbl1,
+ kEoBBaseExpObjectTbl2,
+ kEoBBaseExpObjectTbl3,
+ kEoBBaseExpObjectY,
+
+ kEoBBaseSparkDefSteps,
+ kEoBBaseSparkDefSubSteps,
+ kEoBBaseSparkDefShift,
+ kEoBBaseSparkDefAdd,
+ kEoBBaseSparkDefX,
+ kEoBBaseSparkDefY,
+ kEoBBaseSparkOfFlags1,
+ kEoBBaseSparkOfFlags2,
+ kEoBBaseSparkOfShift,
+ kEoBBaseSparkOfX,
+ kEoBBaseSparkOfY,
+
+ kEoBBaseSpellProperties,
+ kEoBBaseMagicFlightProps,
+ kEoBBaseTurnUndeadEffect,
+ kEoBBaseBurningHandsDest,
+ kEoBBaseConeOfColdDest1,
+ kEoBBaseConeOfColdDest2,
+ kEoBBaseConeOfColdDest3,
+ kEoBBaseConeOfColdDest4,
+ kEoBBaseConeOfColdGfxTbl,
+
+ kRpgCommonDscDoorShapeIndex,
+ kEoBBaseWllFlagPreset,
+ kEoBBaseDscShapeCoords,
+
+ kRpgCommonDscDoorScaleOffs,
+ kEoBBaseDscDoorScaleMult1,
+ kEoBBaseDscDoorScaleMult2,
+ kEoBBaseDscDoorScaleMult3,
+ kEoBBaseDscDoorType5Offs,
+ kEoBBaseDscDoorY1,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+
+ kEoBBaseDscItemPosIndex,
+ kEoBBaseDscItemShpX,
+ kEoBBaseDscItemScaleIndex,
+ kEoBBaseDscItemTileIndex,
+ kEoBBaseDscItemShapeMap,
+ kEoBBaseDscTelptrShpCoords,
+
+ kEoBBasePortalSeqData,
+ kEoBBaseManDef,
+ kEoBBaseManWord,
+ kEoBBaseManPrompt,
+
+ kEoBBaseDscMonsterFrmOffsTbl1,
+ kEoBBaseDscMonsterFrmOffsTbl2,
+
+ kEoBBaseInvSlotX,
+ kEoBBaseInvSlotY,
+ kEoBBaseSlotValidationFlags,
+
+ kEoBBaseProjectileWeaponTypes,
+ kEoBBaseWandTypes,
+
+ kEoBBaseDrawObjPosIndex,
+ kEoBBaseFlightObjFlipIndex,
+ kEoBBaseFlightObjShpMap,
+ kEoBBaseFlightObjSclIndex,
+
+ kEoB2MainMenuStrings,
+
+ kEoB2TransferPortraitFrames,
+ kEoB2TransferConvertTable,
+ kEoB2TransferItemTable,
+ kEoB2TransferExpTable,
+ kEoB2TransferStrings1,
+ kEoB2TransferStrings2,
+ kEoB2TransferLabels,
+
+ kEoB2IntroStrings,
+ kEoB2IntroCPSFiles,
+ kEoB2IntroAnimData00,
+ kEoB2IntroAnimData01,
+ kEoB2IntroAnimData02,
+ kEoB2IntroAnimData03,
+ kEoB2IntroAnimData04,
+ kEoB2IntroAnimData05,
+ kEoB2IntroAnimData06,
+ kEoB2IntroAnimData07,
+ kEoB2IntroAnimData08,
+ kEoB2IntroAnimData09,
+ kEoB2IntroAnimData10,
+ kEoB2IntroAnimData11,
+ kEoB2IntroAnimData12,
+ kEoB2IntroAnimData13,
+ kEoB2IntroAnimData14,
+ kEoB2IntroAnimData15,
+ kEoB2IntroAnimData16,
+ kEoB2IntroAnimData17,
+ kEoB2IntroAnimData18,
+ kEoB2IntroAnimData19,
+ kEoB2IntroAnimData20,
+ kEoB2IntroAnimData21,
+ kEoB2IntroAnimData22,
+ kEoB2IntroAnimData23,
+ kEoB2IntroAnimData24,
+ kEoB2IntroAnimData25,
+ kEoB2IntroAnimData26,
+ kEoB2IntroAnimData27,
+ kEoB2IntroAnimData28,
+ kEoB2IntroAnimData29,
+ kEoB2IntroAnimData30,
+ kEoB2IntroAnimData31,
+ kEoB2IntroAnimData32,
+ kEoB2IntroAnimData33,
+ kEoB2IntroAnimData34,
+ kEoB2IntroAnimData35,
+ kEoB2IntroAnimData36,
+ kEoB2IntroAnimData37,
+ kEoB2IntroAnimData38,
+ kEoB2IntroAnimData39,
+ kEoB2IntroAnimData40,
+
+ kEoB2IntroShapes00,
+ kEoB2IntroShapes01,
+ kEoB2IntroShapes04,
+ kEoB2IntroShapes07,
+ kEoB2IntroShapes13,
+ kEoB2IntroShapes14,
+ kEoB2IntroShapes15,
+
+ kEoB2FinaleStrings,
+ kEoB2FinaleCPSFiles,
+ kEoB2FinaleAnimData00,
+ kEoB2FinaleAnimData01,
+ kEoB2FinaleAnimData02,
+ kEoB2FinaleAnimData03,
+ kEoB2FinaleAnimData04,
+ kEoB2FinaleAnimData05,
+ kEoB2FinaleAnimData06,
+ kEoB2FinaleAnimData07,
+ kEoB2FinaleAnimData08,
+ kEoB2FinaleAnimData09,
+ kEoB2FinaleAnimData10,
+ kEoB2FinaleAnimData11,
+ kEoB2FinaleAnimData12,
+ kEoB2FinaleAnimData13,
+ kEoB2FinaleAnimData14,
+ kEoB2FinaleAnimData15,
+ kEoB2FinaleAnimData16,
+ kEoB2FinaleAnimData17,
+ kEoB2FinaleAnimData18,
+ kEoB2FinaleAnimData19,
+ kEoB2FinaleAnimData20,
+ kEoB2FinaleShapes00,
+ kEoB2FinaleShapes03,
+ kEoB2FinaleShapes07,
+ kEoB2FinaleShapes09,
+ kEoB2FinaleShapes10,
+
+ kEoB2NpcShapeData,
+ kEoBBaseClassModifierFlags,
+
+ kEoBBaseMonsterStepTable02,
+ kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable2,
+ kEoBBaseMonsterStepTable3,
+ kEoBBaseMonsterCloseAttPosTable1,
+ kEoBBaseMonsterCloseAttPosTable22,
+ kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttChkTable1,
+ kEoBBaseMonsterCloseAttChkTable2,
+ kEoBBaseMonsterCloseAttDstTable1,
+ kEoBBaseMonsterCloseAttDstTable2,
+
+ kEoBBaseMonsterProximityTable,
+ kEoBBaseFindBlockMonstersTable,
+ kEoBBaseMonsterDirChangeTable,
+ kEoBBaseMonsterDistAttStrings,
+ kEoBBaseEncodeMonsterDefs,
+ kEoBBaseNpcPresets,
+ kEoB2Npc1Strings,
+ kEoB2Npc2Strings,
+ kEoB2MonsterDustStrings,
+ kEoB2DreamSteps,
+ kEoB2KheldranStrings,
+ kEoB2HornStrings,
+ kEoB2HornSounds,
+ kEoB2WallOfForceDsX,
+ kEoB2WallOfForceDsY,
+ kEoB2WallOfForceNumW,
+ kEoB2WallOfForceNumH,
+ kEoB2WallOfForceShpId,
+
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscBlockIndex,
+
+ kEoBBaseSoundMap,
+ kEoB2SoundMapExtra,
+ kEoB2SoundIndex1,
+ kEoB2SoundIndex2,
+ kEoB2SoundFilesIngame2,
+ kEoB2MonsterSoundPatchData,
+ kEoBBaseLevelSoundFiles1,
+ kEoBBaseLevelSoundFiles2,
+ kEoBBaseSoundFilesIntro,
+ kEoBBaseSoundFilesIngame,
+ kEoBBaseSoundFilesFinale,
+
+ -1
+};
+
const int eob2PC98Need[] = {
kEoBBaseChargenStrings1,
kEoBBaseChargenStrings2,
@@ -3263,7 +3598,7 @@ const GameNeed gameNeedTable[] = {
//{ kEoB1, kPlatformPC98, kNoSpecial, eob1PC98Need },
{ kEoB2, kPlatformDOS, kNoSpecial, eob2FloppyNeed },
- //{ kEoB2, kPlatformAmiga, kNoSpecial, eob2AmigaNeed },
+ { kEoB2, kPlatformAmiga, kNoSpecial, eob2AmigaNeed },
//{ kEoB2, kPlatformPC98, kNoSpecial, eob2PC98Need },
{ kEoB2, kPlatformFMTowns, kNoSpecial, eob2FMTownsNeed },
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 4de1d41503..36e6b0baf5 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -104,9 +104,9 @@
#include "resources/eob2_dos.h"
#include "resources/eob2_dos_english.h"
#include "resources/eob2_dos_german.h"
-//#include "resources/eob2_amiga.h"
-//#include "resources/eob2_amiga_english.h"
-//#include "resources/eob2_amiga_german.h"
+#include "resources/eob2_amiga.h"
+#include "resources/eob2_amiga_english.h"
+#include "resources/eob2_amiga_german.h"
//#include "resources/eob2_pc98.h"
//#include "resources/eob2_pc98_japanese.h"
#include "resources/eob2_fmtowns.h"
@@ -1595,8 +1595,8 @@ static const ResourceProvider resourceProviders[] = {
{ kEoBBaseEncodeMonsterDefs, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1EncodeMonsterDefsAmigaProvider },
{ kEoBBaseNpcPresets, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NpcPresetsAmigaProvider },
{ kEoBBaseSoundMap, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundMapAmigaProvider },
- { kEoB1LevelSoundFiles1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1LevelSoundFiles1AmigaProvider },
- { kEoB1LevelSoundFiles2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1LevelSoundFiles2AmigaProvider },
+ { kEoBBaseLevelSoundFiles1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1LevelSoundFiles1AmigaProvider },
+ { kEoBBaseLevelSoundFiles2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1LevelSoundFiles2AmigaProvider },
{ kEoBBaseSoundFilesIntro, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIntroAmigaProvider },
{ kEoBBaseSoundFilesIngame, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIngameAmigaProvider },
{ kEoBBaseSoundFilesFinale, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundFilesFinaleAmigaProvider },
@@ -2073,6 +2073,407 @@ static const ResourceProvider resourceProviders[] = {
{ kEoB2MonsterDustStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2MonsterDustStringsDOSGermanProvider },
{ kEoB2KheldranStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2KheldranStringsDOSGermanProvider },
{ kEoB2HornStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2HornStringsDOSGermanProvider },
+
+
+
+
+ { kEoBBaseChargenStrings1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenStrings1AmigaEnglishProvider },
+ { kEoBBaseChargenStrings2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenStrings2AmigaEnglishProvider },
+ { kEoBBaseChargenStartLevels, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsAmigaProvider },
+ { kEoBBaseChargenStatStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenStatStringsAmigaEnglishProvider },
+ { kEoBBaseChargenRaceSexStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenRaceSexStringsAmigaEnglishProvider },
+ { kEoBBaseChargenClassStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenClassStringsAmigaEnglishProvider },
+ { kEoBBaseChargenAlignmentStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenAlignmentStringsAmigaEnglishProvider },
+ { kEoBBaseChargenEnterGameStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenEnterGameStringsAmigaEnglishProvider },
+ { kEoBBaseChargenClassMinStats, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenClassMinStatsAmigaProvider },
+ { kEoBBaseChargenRaceMinStats, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMinStatsAmigaProvider },
+ { kEoBBaseChargenRaceMaxStats, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMaxStatsAmigaProvider },
+ { kEoBBaseSaveThrowTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable1AmigaProvider },
+ { kEoBBaseSaveThrowTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable2AmigaProvider },
+ { kEoBBaseSaveThrowTable3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable3AmigaProvider },
+ { kEoBBaseSaveThrowTable4, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable4AmigaProvider },
+ { kEoBBaseSaveThrwLvlIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrwLvlIndexAmigaProvider },
+ { kEoBBaseSaveThrwModDiv, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModDivAmigaProvider },
+ { kEoBBaseSaveThrwModExt, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModExtAmigaProvider },
+ { kEoBBasePryDoorStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PryDoorStringsAmigaEnglishProvider },
+ { kEoBBaseWarningStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2WarningStringsAmigaEnglishProvider },
+ { kEoBBaseItemSuffixStringsRings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemSuffixStringsRingsAmigaEnglishProvider },
+ { kEoBBaseItemSuffixStringsPotions, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemSuffixStringsPotionsAmigaEnglishProvider },
+ { kEoBBaseItemSuffixStringsWands, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemSuffixStringsWandsAmigaEnglishProvider },
+ { kEoBBaseRipItemStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2RipItemStringsAmigaEnglishProvider },
+ { kEoBBaseCursedString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CursedStringAmigaEnglishProvider },
+ { kEoBBaseEnchantedString, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2EnchantedStringAmigaProvider },
+ { kEoBBaseMagicObjectStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicObjectStringsAmigaEnglishProvider },
+ { kEoBBaseMagicObjectString5, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicObjectString5AmigaEnglishProvider },
+ { kEoBBasePatternSuffix, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PatternSuffixAmigaEnglishProvider },
+ { kEoBBasePatternGrFix1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PatternGrFix1AmigaEnglishProvider },
+ { kEoBBasePatternGrFix2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PatternGrFix2AmigaEnglishProvider },
+ { kEoBBaseValidateArmorString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ValidateArmorStringAmigaEnglishProvider },
+ { kEoBBaseValidateCursedString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ValidateCursedStringAmigaEnglishProvider },
+ { kEoBBaseValidateNoDropString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ValidateNoDropStringAmigaEnglishProvider },
+ { kEoBBasePotionStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PotionStringsAmigaEnglishProvider },
+ { kEoBBaseWandStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2WandStringsAmigaEnglishProvider },
+ { kEoBBaseItemMisuseStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemMisuseStringsAmigaEnglishProvider },
+ { kEoBBaseTakenStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TakenStringsAmigaEnglishProvider },
+ { kEoBBasePotionEffectStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PotionEffectStringsAmigaEnglishProvider },
+ { kEoBBaseYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2YesNoStringsAmigaEnglishProvider },
+ { kRpgCommonMoreStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MoreStringsAmigaEnglishProvider },
+ { kEoBBaseNpcMaxStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2NpcMaxStringsAmigaEnglishProvider },
+ { kEoBBaseOkStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2OkStringsAmigaEnglishProvider },
+ { kEoBBaseNpcJoinStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2NpcJoinStringsAmigaEnglishProvider },
+ { kEoBBaseCancelStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CancelStringsAmigaEnglishProvider },
+ { kEoBBaseAbortStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2AbortStringsAmigaEnglishProvider },
+ { kEoBBaseMenuStringsMain, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsMainAmigaEnglishProvider },
+ { kEoBBaseMenuStringsSaveLoad, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsSaveLoadAmigaEnglishProvider },
+ { kEoBBaseMenuStringsOnOff, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsOnOffAmigaEnglishProvider },
+ { kEoBBaseMenuStringsSpells, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsSpellsAmigaEnglishProvider },
+ { kEoBBaseMenuStringsRest, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRestAmigaEnglishProvider },
+ { kEoBBaseMenuStringsDrop, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsDropAmigaEnglishProvider },
+ { kEoBBaseMenuStringsExit, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsExitAmigaEnglishProvider },
+ { kEoBBaseMenuStringsStarve, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsStarveAmigaEnglishProvider },
+ { kEoBBaseMenuStringsScribe, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsScribeAmigaEnglishProvider },
+ { kEoBBaseMenuStringsDrop2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsDrop2AmigaEnglishProvider },
+ { kEoBBaseMenuStringsHead, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsHeadAmigaEnglishProvider },
+ { kEoBBaseMenuStringsPoison, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsPoisonAmigaEnglishProvider },
+ { kEoBBaseMenuStringsMgc, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsMgcAmigaEnglishProvider },
+ { kEoBBaseMenuStringsPrefs, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsPrefsAmigaEnglishProvider },
+ { kEoBBaseMenuStringsRest2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRest2AmigaEnglishProvider },
+ { kEoBBaseMenuStringsRest3, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRest3AmigaEnglishProvider },
+ { kEoBBaseMenuStringsRest4, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRest4AmigaEnglishProvider },
+ { kEoBBaseMenuStringsDefeat, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsDefeatAmigaEnglishProvider },
+ { kEoBBaseMenuStringsTransfer, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsTransferAmigaEnglishProvider },
+ { kEoBBaseMenuStringsSpec, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsSpecAmigaEnglishProvider },
+ { kEoBBaseMenuStringsSpellNo, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MenuStringsSpellNoAmigaProvider },
+ { kEoBBaseMenuYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuYesNoStringsAmigaEnglishProvider },
+ { kEoBBaseSpellLevelsMage, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsMageAmigaProvider },
+ { kEoBBaseSpellLevelsCleric, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsClericAmigaProvider },
+ { kEoBBaseNumSpellsCleric, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsClericAmigaProvider },
+ { kEoBBaseNumSpellsWisAdj, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsWisAdjAmigaProvider },
+ { kEoBBaseNumSpellsPal, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsPalAmigaProvider },
+ { kEoBBaseNumSpellsMage, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsMageAmigaProvider },
+ { kEoBBaseCharGuiStringsHp, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsHpAmigaEnglishProvider },
+ { kEoBBaseCharGuiStringsWp2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsWp2AmigaEnglishProvider },
+ { kEoBBaseCharGuiStringsWr, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsWrAmigaEnglishProvider },
+ { kEoBBaseCharGuiStringsSt2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsSt2AmigaEnglishProvider },
+ { kEoBBaseCharGuiStringsIn, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsInAmigaEnglishProvider },
+ { kEoBBaseCharStatusStrings7, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings7AmigaEnglishProvider },
+ { kEoBBaseCharStatusStrings82, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings82AmigaEnglishProvider },
+ { kEoBBaseCharStatusStrings9, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings9AmigaEnglishProvider },
+ { kEoBBaseCharStatusStrings12, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings12AmigaEnglishProvider },
+ { kEoBBaseCharStatusStrings132, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings132AmigaEnglishProvider },
+ { kEoBBaseLevelGainStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2LevelGainStringsAmigaEnglishProvider },
+ { kEoBBaseExperienceTable0, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable0AmigaProvider },
+ { kEoBBaseExperienceTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable1AmigaProvider },
+ { kEoBBaseExperienceTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable2AmigaProvider },
+ { kEoBBaseExperienceTable3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable3AmigaProvider },
+ { kEoBBaseExperienceTable4, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable4AmigaProvider },
+ { kEoBBaseBookNumbers, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2BookNumbersAmigaEnglishProvider },
+ { kEoBBaseMageSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MageSpellsListAmigaEnglishProvider },
+ { kEoBBaseClericSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ClericSpellsListAmigaEnglishProvider },
+ { kEoBBaseSpellNames, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2SpellNamesAmigaEnglishProvider },
+ { kEoBBaseMagicStrings1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings1AmigaEnglishProvider },
+ { kEoBBaseMagicStrings2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings2AmigaEnglishProvider },
+ { kEoBBaseMagicStrings3, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings3AmigaEnglishProvider },
+ { kEoBBaseMagicStrings4, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings4AmigaEnglishProvider },
+ { kEoBBaseMagicStrings6, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings6AmigaEnglishProvider },
+ { kEoBBaseMagicStrings7, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings7AmigaEnglishProvider },
+ { kEoBBaseMagicStrings8, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings8AmigaEnglishProvider },
+ { kEoBBaseExpObjectTlMode, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTlModeAmigaProvider },
+ { kEoBBaseExpObjectTblIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTblIndexAmigaProvider },
+ { kEoBBaseExpObjectShpStart, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectShpStartAmigaProvider },
+ { kEoBBaseExpObjectTbl1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl1AmigaProvider },
+ { kEoBBaseExpObjectTbl2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl2AmigaProvider },
+ { kEoBBaseExpObjectTbl3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl3AmigaProvider },
+ { kEoBBaseExpObjectY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectYAmigaProvider },
+ { kEoBBaseSparkDefSteps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefStepsAmigaProvider },
+ { kEoBBaseSparkDefSubSteps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefSubStepsAmigaProvider },
+ { kEoBBaseSparkDefShift, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefShiftAmigaProvider },
+ { kEoBBaseSparkDefAdd, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefAddAmigaProvider },
+ { kEoBBaseSparkDefX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefXAmigaProvider },
+ { kEoBBaseSparkDefY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefYAmigaProvider },
+ { kEoBBaseSparkOfFlags1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags1AmigaProvider },
+ { kEoBBaseSparkOfFlags2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags2AmigaProvider },
+ { kEoBBaseSparkOfShift, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfShiftAmigaProvider },
+ { kEoBBaseSparkOfX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfXAmigaProvider },
+ { kEoBBaseSparkOfY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfYAmigaProvider },
+ { kEoBBaseSpellProperties, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SpellPropertiesAmigaProvider },
+ { kEoBBaseMagicFlightProps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MagicFlightPropsAmigaProvider },
+ { kEoBBaseTurnUndeadEffect, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TurnUndeadEffectAmigaProvider },
+ { kEoBBaseBurningHandsDest, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2BurningHandsDestAmigaProvider },
+ { kEoBBaseConeOfColdDest1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest1AmigaProvider },
+ { kEoBBaseConeOfColdDest2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest2AmigaProvider },
+ { kEoBBaseConeOfColdDest3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest3AmigaProvider },
+ { kEoBBaseConeOfColdDest4, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest4AmigaProvider },
+ { kEoBBaseConeOfColdGfxTbl, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdGfxTblAmigaProvider },
+ { kRpgCommonDscDoorShapeIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorShapeIndexAmigaProvider },
+ { kEoBBaseWllFlagPreset, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WllFlagPresetAmigaProvider },
+ { kEoBBaseDscShapeCoords, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscShapeCoordsAmigaProvider },
+ { kRpgCommonDscDoorScaleOffs, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsAmigaProvider },
+ { kEoBBaseDscDoorScaleMult1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult1AmigaProvider },
+ { kEoBBaseDscDoorScaleMult2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult2AmigaProvider },
+ { kEoBBaseDscDoorScaleMult3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult3AmigaProvider },
+ { kEoBBaseDscDoorType5Offs, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorType5OffsAmigaProvider },
+ { kEoBBaseDscDoorY1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorY1AmigaProvider },
+ { kRpgCommonDscDoorY2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorY2AmigaProvider },
+ { kRpgCommonDscDoorFrameY1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY1AmigaProvider },
+ { kRpgCommonDscDoorFrameY2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY2AmigaProvider },
+ { kEoBBaseDscItemPosIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemPosIndexAmigaProvider },
+ { kEoBBaseDscItemShpX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemShpXAmigaProvider },
+ { kEoBBaseDscItemScaleIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemScaleIndexAmigaProvider },
+ { kEoBBaseDscItemTileIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemTileIndexAmigaProvider },
+ { kEoBBaseDscItemShapeMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemShapeMapAmigaProvider },
+ { kEoBBaseDscTelptrShpCoords, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscTelptrShpCoordsAmigaProvider },
+ { kEoBBasePortalSeqData, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2PortalSeqDataAmigaProvider },
+ { kEoBBaseManDef, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ManDefAmigaEnglishProvider },
+ { kEoBBaseManWord, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ManWordAmigaEnglishProvider },
+ { kEoBBaseManPrompt, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ManPromptAmigaEnglishProvider },
+ { kEoBBaseDscMonsterFrmOffsTbl1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl1AmigaProvider },
+ { kEoBBaseDscMonsterFrmOffsTbl2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl2AmigaProvider },
+ { kEoBBaseInvSlotX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2InvSlotXAmigaProvider },
+ { kEoBBaseInvSlotY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2InvSlotYAmigaProvider },
+ { kEoBBaseSlotValidationFlags, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SlotValidationFlagsAmigaProvider },
+ { kEoBBaseProjectileWeaponTypes, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ProjectileWeaponTypesAmigaProvider },
+ { kEoBBaseWandTypes, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WandTypesAmigaProvider },
+ { kEoBBaseDrawObjPosIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DrawObjPosIndexAmigaProvider },
+ { kEoBBaseFlightObjFlipIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FlightObjFlipIndexAmigaProvider },
+ { kEoBBaseFlightObjShpMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FlightObjShpMapAmigaProvider },
+ { kEoBBaseFlightObjSclIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FlightObjSclIndexAmigaProvider },
+ { kEoB2MainMenuStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MainMenuStringsAmigaEnglishProvider },
+ { kEoB2TransferPortraitFrames, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferPortraitFramesAmigaProvider },
+ { kEoB2TransferConvertTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferConvertTableAmigaProvider },
+ { kEoB2TransferItemTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferItemTableAmigaProvider },
+ { kEoB2TransferExpTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferExpTableAmigaProvider },
+ { kEoB2TransferStrings1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TransferStrings1AmigaEnglishProvider },
+ { kEoB2TransferStrings2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TransferStrings2AmigaEnglishProvider },
+ { kEoB2TransferLabels, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TransferLabelsAmigaEnglishProvider },
+ { kEoB2IntroStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2IntroStringsAmigaEnglishProvider },
+ { kEoB2IntroCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2IntroCPSFilesAmigaEnglishProvider },
+ { kEoB2IntroAnimData00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData00AmigaProvider },
+ { kEoB2IntroAnimData01, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData01AmigaProvider },
+ { kEoB2IntroAnimData02, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData02AmigaProvider },
+ { kEoB2IntroAnimData03, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData03AmigaProvider },
+ { kEoB2IntroAnimData04, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData04AmigaProvider },
+ { kEoB2IntroAnimData05, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData05AmigaProvider },
+ { kEoB2IntroAnimData06, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData06AmigaProvider },
+ { kEoB2IntroAnimData07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData07AmigaProvider },
+ { kEoB2IntroAnimData08, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData08AmigaProvider },
+ { kEoB2IntroAnimData09, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData09AmigaProvider },
+ { kEoB2IntroAnimData10, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData10AmigaProvider },
+ { kEoB2IntroAnimData11, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData11AmigaProvider },
+ { kEoB2IntroAnimData12, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData12AmigaProvider },
+ { kEoB2IntroAnimData13, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData13AmigaProvider },
+ { kEoB2IntroAnimData14, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData14AmigaProvider },
+ { kEoB2IntroAnimData15, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData15AmigaProvider },
+ { kEoB2IntroAnimData16, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData16AmigaProvider },
+ { kEoB2IntroAnimData17, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData17AmigaProvider },
+ { kEoB2IntroAnimData18, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData18AmigaProvider },
+ { kEoB2IntroAnimData19, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData19AmigaProvider },
+ { kEoB2IntroAnimData20, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData20AmigaProvider },
+ { kEoB2IntroAnimData21, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData21AmigaProvider },
+ { kEoB2IntroAnimData22, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData22AmigaProvider },
+ { kEoB2IntroAnimData23, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData23AmigaProvider },
+ { kEoB2IntroAnimData24, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData24AmigaProvider },
+ { kEoB2IntroAnimData25, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData25AmigaProvider },
+ { kEoB2IntroAnimData26, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData26AmigaProvider },
+ { kEoB2IntroAnimData27, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData27AmigaProvider },
+ { kEoB2IntroAnimData28, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData28AmigaProvider },
+ { kEoB2IntroAnimData29, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData29AmigaProvider },
+ { kEoB2IntroAnimData30, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData30AmigaProvider },
+ { kEoB2IntroAnimData31, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData31AmigaProvider },
+ { kEoB2IntroAnimData32, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData32AmigaProvider },
+ { kEoB2IntroAnimData33, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData33AmigaProvider },
+ { kEoB2IntroAnimData34, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData34AmigaProvider },
+ { kEoB2IntroAnimData35, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData35AmigaProvider },
+ { kEoB2IntroAnimData36, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData36AmigaProvider },
+ { kEoB2IntroAnimData37, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData37AmigaProvider },
+ { kEoB2IntroAnimData38, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData38AmigaProvider },
+ { kEoB2IntroAnimData39, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData39AmigaProvider },
+ { kEoB2IntroAnimData40, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData40AmigaProvider },
+ { kEoB2IntroShapes00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes00AmigaProvider },
+ { kEoB2IntroShapes01, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes01AmigaProvider },
+ { kEoB2IntroShapes04, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes04AmigaProvider },
+ { kEoB2IntroShapes07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes07AmigaProvider },
+ { kEoB2IntroShapes13, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes13AmigaProvider },
+ { kEoB2IntroShapes14, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes14AmigaProvider },
+ { kEoB2IntroShapes15, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes15AmigaProvider },
+ { kEoB2FinaleStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2FinaleStringsAmigaEnglishProvider },
+ { kEoB2FinaleCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2FinaleCPSFilesAmigaEnglishProvider },
+ { kEoB2FinaleAnimData00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData00AmigaProvider },
+ { kEoB2FinaleAnimData01, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData01AmigaProvider },
+ { kEoB2FinaleAnimData02, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData02AmigaProvider },
+ { kEoB2FinaleAnimData03, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData03AmigaProvider },
+ { kEoB2FinaleAnimData04, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData04AmigaProvider },
+ { kEoB2FinaleAnimData05, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData05AmigaProvider },
+ { kEoB2FinaleAnimData06, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData06AmigaProvider },
+ { kEoB2FinaleAnimData07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData07AmigaProvider },
+ { kEoB2FinaleAnimData08, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData08AmigaProvider },
+ { kEoB2FinaleAnimData09, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData09AmigaProvider },
+ { kEoB2FinaleAnimData10, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData10AmigaProvider },
+ { kEoB2FinaleAnimData11, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData11AmigaProvider },
+ { kEoB2FinaleAnimData12, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData12AmigaProvider },
+ { kEoB2FinaleAnimData13, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData13AmigaProvider },
+ { kEoB2FinaleAnimData14, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData14AmigaProvider },
+ { kEoB2FinaleAnimData15, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData15AmigaProvider },
+ { kEoB2FinaleAnimData16, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData16AmigaProvider },
+ { kEoB2FinaleAnimData17, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData17AmigaProvider },
+ { kEoB2FinaleAnimData18, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData18AmigaProvider },
+ { kEoB2FinaleAnimData19, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData19AmigaProvider },
+ { kEoB2FinaleAnimData20, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData20AmigaProvider },
+ { kEoB2FinaleShapes00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes00AmigaProvider },
+ { kEoB2FinaleShapes03, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes03AmigaProvider },
+ { kEoB2FinaleShapes07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes07AmigaProvider },
+ { kEoB2FinaleShapes09, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes09AmigaProvider },
+ { kEoB2FinaleShapes10, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes10AmigaProvider },
+ { kEoB2NpcShapeData, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NpcShapeDataAmigaProvider },
+ { kEoBBaseClassModifierFlags, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ClassModifierFlagsAmigaProvider },
+ { kEoBBaseMonsterStepTable02, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable02AmigaProvider },
+ { kEoBBaseMonsterStepTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable1AmigaProvider },
+ { kEoBBaseMonsterStepTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable2AmigaProvider },
+ { kEoBBaseMonsterStepTable3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable3AmigaProvider },
+ { kEoBBaseMonsterCloseAttPosTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable1AmigaProvider },
+ { kEoBBaseMonsterCloseAttPosTable22, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable22AmigaProvider },
+ { kEoBBaseMonsterCloseAttUnkTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttUnkTableAmigaProvider },
+ { kEoBBaseMonsterCloseAttChkTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable1AmigaProvider },
+ { kEoBBaseMonsterCloseAttChkTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable2AmigaProvider },
+ { kEoBBaseMonsterCloseAttDstTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable1AmigaProvider },
+ { kEoBBaseMonsterCloseAttDstTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable2AmigaProvider },
+ { kEoBBaseMonsterProximityTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterProximityTableAmigaProvider },
+ { kEoBBaseFindBlockMonstersTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FindBlockMonstersTableAmigaProvider },
+ { kEoBBaseMonsterDirChangeTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterDirChangeTableAmigaProvider },
+ { kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MonsterDistAttStringsAmigaEnglishProvider },
+ { kEoBBaseEncodeMonsterDefs, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2EncodeMonsterDefsAmigaProvider },
+ { kEoBBaseNpcPresets, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NpcPresetsAmigaProvider },
+ { kEoBBaseSoundMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundMapAmigaProvider },
+ { kEoB2SoundMapExtra, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundMapExtraAmigaProvider },
+ { kEoB2SoundIndex1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundIndex1AmigaProvider },
+ { kEoB2SoundIndex2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundIndex2AmigaProvider },
+ { kEoB2SoundFilesIngame2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIngame2AmigaProvider },
+ { kEoB2MonsterSoundPatchData, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterSoundPatchDataAmigaProvider },
+ { kEoBBaseLevelSoundFiles1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2LevelSoundFiles1AmigaProvider },
+ { kEoBBaseLevelSoundFiles2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2LevelSoundFiles2AmigaProvider },
+ { kEoBBaseSoundFilesIntro, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIntroAmigaProvider },
+ { kEoBBaseSoundFilesIngame, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIngameAmigaProvider },
+ { kEoBBaseSoundFilesFinale, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesFinaleAmigaProvider },
+ { kEoB2Npc1Strings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2Npc1StringsAmigaEnglishProvider },
+ { kEoB2Npc2Strings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2Npc2StringsAmigaEnglishProvider },
+ { kEoB2MonsterDustStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MonsterDustStringsAmigaEnglishProvider },
+ { kEoB2DreamSteps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DreamStepsAmigaProvider },
+ { kEoB2KheldranStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2KheldranStringsAmigaEnglishProvider },
+ { kEoB2HornStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2HornStringsAmigaEnglishProvider },
+ { kEoB2HornSounds, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2HornSoundsAmigaProvider },
+ { kEoB2WallOfForceDsX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsXAmigaProvider },
+ { kEoB2WallOfForceDsY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsYAmigaProvider },
+ { kEoB2WallOfForceNumW, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumWAmigaProvider },
+ { kEoB2WallOfForceNumH, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumHAmigaProvider },
+ { kEoB2WallOfForceShpId, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShpIdAmigaProvider },
+ { kRpgCommonDscShapeIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscShapeIndexAmigaProvider },
+ { kRpgCommonDscX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscXAmigaProvider },
+ { kRpgCommonDscTileIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscTileIndexAmigaProvider },
+ { kRpgCommonDscDimData1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDimData1AmigaProvider },
+ { kRpgCommonDscDimData2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDimData2AmigaProvider },
+ { kRpgCommonDscBlockMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscBlockMapAmigaProvider },
+ { kRpgCommonDscDimMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDimMapAmigaProvider },
+ { kRpgCommonDscBlockIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscBlockIndexAmigaProvider },
+ { kEoBBaseChargenStrings1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenStrings1AmigaGermanProvider },
+ { kEoBBaseChargenStrings2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenStrings2AmigaGermanProvider },
+ { kEoBBaseChargenStatStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenStatStringsAmigaGermanProvider },
+ { kEoBBaseChargenRaceSexStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenRaceSexStringsAmigaGermanProvider },
+ { kEoBBaseChargenClassStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenClassStringsAmigaGermanProvider },
+ { kEoBBaseChargenAlignmentStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenAlignmentStringsAmigaGermanProvider },
+ { kEoBBaseChargenEnterGameStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenEnterGameStringsAmigaGermanProvider },
+ { kEoBBasePryDoorStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PryDoorStringsAmigaGermanProvider },
+ { kEoBBaseWarningStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2WarningStringsAmigaGermanProvider },
+ { kEoBBaseItemSuffixStringsRings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemSuffixStringsRingsAmigaGermanProvider },
+ { kEoBBaseItemSuffixStringsPotions, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemSuffixStringsPotionsAmigaGermanProvider },
+ { kEoBBaseItemSuffixStringsWands, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemSuffixStringsWandsAmigaGermanProvider },
+ { kEoBBaseRipItemStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2RipItemStringsAmigaGermanProvider },
+ { kEoBBaseCursedString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CursedStringAmigaGermanProvider },
+ { kEoBBaseMagicObjectStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicObjectStringsAmigaGermanProvider },
+ { kEoBBaseMagicObjectString5, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicObjectString5AmigaGermanProvider },
+ { kEoBBasePatternSuffix, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PatternSuffixAmigaGermanProvider },
+ { kEoBBasePatternGrFix1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PatternGrFix1AmigaGermanProvider },
+ { kEoBBasePatternGrFix2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PatternGrFix2AmigaGermanProvider },
+ { kEoBBaseValidateArmorString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ValidateArmorStringAmigaGermanProvider },
+ { kEoBBaseValidateCursedString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ValidateCursedStringAmigaGermanProvider },
+ { kEoBBaseValidateNoDropString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ValidateNoDropStringAmigaGermanProvider },
+ { kEoBBasePotionStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PotionStringsAmigaGermanProvider },
+ { kEoBBaseWandStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2WandStringsAmigaGermanProvider },
+ { kEoBBaseItemMisuseStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemMisuseStringsAmigaGermanProvider },
+ { kEoBBaseTakenStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TakenStringsAmigaGermanProvider },
+ { kEoBBasePotionEffectStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PotionEffectStringsAmigaGermanProvider },
+ { kEoBBaseYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2YesNoStringsAmigaGermanProvider },
+ { kRpgCommonMoreStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MoreStringsAmigaGermanProvider },
+ { kEoBBaseNpcMaxStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2NpcMaxStringsAmigaGermanProvider },
+ { kEoBBaseOkStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2OkStringsAmigaGermanProvider },
+ { kEoBBaseNpcJoinStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2NpcJoinStringsAmigaGermanProvider },
+ { kEoBBaseCancelStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CancelStringsAmigaGermanProvider },
+ { kEoBBaseAbortStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2AbortStringsAmigaGermanProvider },
+ { kEoBBaseMenuStringsMain, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsMainAmigaGermanProvider },
+ { kEoBBaseMenuStringsSaveLoad, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsSaveLoadAmigaGermanProvider },
+ { kEoBBaseMenuStringsOnOff, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsOnOffAmigaGermanProvider },
+ { kEoBBaseMenuStringsSpells, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsSpellsAmigaGermanProvider },
+ { kEoBBaseMenuStringsRest, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRestAmigaGermanProvider },
+ { kEoBBaseMenuStringsDrop, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsDropAmigaGermanProvider },
+ { kEoBBaseMenuStringsExit, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsExitAmigaGermanProvider },
+ { kEoBBaseMenuStringsStarve, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsStarveAmigaGermanProvider },
+ { kEoBBaseMenuStringsScribe, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsScribeAmigaGermanProvider },
+ { kEoBBaseMenuStringsDrop2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsDrop2AmigaGermanProvider },
+ { kEoBBaseMenuStringsHead, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsHeadAmigaGermanProvider },
+ { kEoBBaseMenuStringsPoison, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsPoisonAmigaGermanProvider },
+ { kEoBBaseMenuStringsMgc, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsMgcAmigaGermanProvider },
+ { kEoBBaseMenuStringsPrefs, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsPrefsAmigaGermanProvider },
+ { kEoBBaseMenuStringsRest2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRest2AmigaGermanProvider },
+ { kEoBBaseMenuStringsRest3, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRest3AmigaGermanProvider },
+ { kEoBBaseMenuStringsRest4, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRest4AmigaGermanProvider },
+ { kEoBBaseMenuStringsDefeat, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsDefeatAmigaGermanProvider },
+ { kEoBBaseMenuStringsTransfer, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsTransferAmigaGermanProvider },
+ { kEoBBaseMenuStringsSpec, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsSpecAmigaGermanProvider },
+ { kEoBBaseMenuYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuYesNoStringsAmigaGermanProvider },
+ { kEoBBaseCharGuiStringsHp, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsHpAmigaGermanProvider },
+ { kEoBBaseCharGuiStringsWp2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsWp2AmigaGermanProvider },
+ { kEoBBaseCharGuiStringsWr, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsWrAmigaGermanProvider },
+ { kEoBBaseCharGuiStringsSt2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsSt2AmigaGermanProvider },
+ { kEoBBaseCharGuiStringsIn, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsInAmigaGermanProvider },
+ { kEoBBaseCharStatusStrings7, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings7AmigaGermanProvider },
+ { kEoBBaseCharStatusStrings82, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings82AmigaGermanProvider },
+ { kEoBBaseCharStatusStrings9, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings9AmigaGermanProvider },
+ { kEoBBaseCharStatusStrings12, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings12AmigaGermanProvider },
+ { kEoBBaseCharStatusStrings132, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings132AmigaGermanProvider },
+ { kEoBBaseLevelGainStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2LevelGainStringsAmigaGermanProvider },
+ { kEoBBaseBookNumbers, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2BookNumbersAmigaGermanProvider },
+ { kEoBBaseMageSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MageSpellsListAmigaGermanProvider },
+ { kEoBBaseClericSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ClericSpellsListAmigaGermanProvider },
+ { kEoBBaseSpellNames, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2SpellNamesAmigaGermanProvider },
+ { kEoBBaseMagicStrings1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings1AmigaGermanProvider },
+ { kEoBBaseMagicStrings2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings2AmigaGermanProvider },
+ { kEoBBaseMagicStrings3, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings3AmigaGermanProvider },
+ { kEoBBaseMagicStrings4, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings4AmigaGermanProvider },
+ { kEoBBaseMagicStrings6, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings6AmigaGermanProvider },
+ { kEoBBaseMagicStrings7, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings7AmigaGermanProvider },
+ { kEoBBaseMagicStrings8, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings8AmigaGermanProvider },
+ { kEoBBaseManDef, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ManDefAmigaGermanProvider },
+ { kEoBBaseManWord, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ManWordAmigaGermanProvider },
+ { kEoBBaseManPrompt, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ManPromptAmigaGermanProvider },
+ { kEoB2MainMenuStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MainMenuStringsAmigaGermanProvider },
+ { kEoB2TransferStrings1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TransferStrings1AmigaGermanProvider },
+ { kEoB2TransferStrings2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TransferStrings2AmigaGermanProvider },
+ { kEoB2TransferLabels, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TransferLabelsAmigaGermanProvider },
+ { kEoB2IntroStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2IntroStringsAmigaGermanProvider },
+ { kEoB2IntroCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2IntroCPSFilesAmigaGermanProvider },
+ { kEoB2FinaleStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2FinaleStringsAmigaGermanProvider },
+ { kEoB2FinaleCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2FinaleCPSFilesAmigaGermanProvider },
+ { kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MonsterDistAttStringsAmigaGermanProvider },
+ { kEoB2Npc1Strings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2Npc1StringsAmigaGermanProvider },
+ { kEoB2Npc2Strings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2Npc2StringsAmigaGermanProvider },
+ { kEoB2MonsterDustStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MonsterDustStringsAmigaGermanProvider },
+ { kEoB2KheldranStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2KheldranStringsAmigaGermanProvider },
+ { kEoB2HornStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2HornStringsAmigaGermanProvider },
+
+
+
+
+
+
{ kEoBBaseChargenStrings1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings1FMTownsJapaneseProvider },
{ kEoBBaseChargenStrings2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings2FMTownsJapaneseProvider },
{ kEoBBaseChargenStartLevels, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsFMTownsProvider },
diff --git a/devtools/create_kyradat/resources/eob2_amiga.h b/devtools/create_kyradat/resources/eob2_amiga.h
new file mode 100644
index 0000000000..16cb4406e8
--- /dev/null
+++ b/devtools/create_kyradat/resources/eob2_amiga.h
@@ -0,0 +1,2775 @@
+static const byte kEoB2ChargenStartLevelsAmiga[60] = {
+ 0x07, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01,
+ 0x06, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01,
+ 0x07, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01,
+ 0x06, 0x06, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02,
+ 0x06, 0x05, 0x00, 0x02, 0x05, 0x05, 0x06, 0x03,
+ 0x06, 0x05, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02,
+ 0x05, 0x05, 0x05, 0x03, 0x05, 0x06, 0x00, 0x02,
+ 0x06, 0x05, 0x00, 0x02
+};
+
+static const ByteProvider kEoB2ChargenStartLevelsAmigaProvider = { ARRAYSIZE(kEoB2ChargenStartLevelsAmiga), kEoB2ChargenStartLevelsAmiga };
+
+static const byte kEoB2ChargenClassMinStatsAmiga[90] = {
+ 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00,
+ 0x0e, 0x0d, 0x0e, 0x00, 0x0c, 0x00, 0x0d, 0x00,
+ 0x09, 0x11, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,
+ 0x00, 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00,
+ 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09,
+ 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09,
+ 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00,
+ 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00,
+ 0x0e, 0x0d, 0x0e, 0x00, 0x00, 0x09, 0x09, 0x00,
+ 0x00, 0x00
+};
+
+static const ByteProvider kEoB2ChargenClassMinStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenClassMinStatsAmiga), kEoB2ChargenClassMinStatsAmiga };
+
+static const byte kEoB2ChargenRaceMinStatsAmiga[36] = {
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x08,
+ 0x03, 0x07, 0x06, 0x08, 0x03, 0x04, 0x03, 0x06,
+ 0x06, 0x03, 0x08, 0x03, 0x03, 0x03, 0x0c, 0x02,
+ 0x06, 0x07, 0x02, 0x03, 0x08, 0x03, 0x07, 0x06,
+ 0x03, 0x08, 0x0a, 0x06
+};
+
+static const ByteProvider kEoB2ChargenRaceMinStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenRaceMinStatsAmiga), kEoB2ChargenRaceMinStatsAmiga };
+
+static const uint16 kEoB2ChargenRaceMaxStatsAmiga[36] = {
+ 0x6412, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x6412, 0x0012,
+ 0x0012, 0x0013, 0x0011, 0x0012, 0x6412, 0x0012, 0x0012, 0x0012,
+ 0x0012, 0x0012, 0x6412, 0x0012, 0x0012, 0x0011, 0x0013, 0x0010,
+ 0x6412, 0x0013, 0x0011, 0x0012, 0x0012, 0x0012, 0x0011, 0x0012,
+ 0x0011, 0x0013, 0x0012, 0x0012
+};
+
+static const Uint16Provider kEoB2ChargenRaceMaxStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenRaceMaxStatsAmiga), kEoB2ChargenRaceMaxStatsAmiga };
+
+static const byte kEoB2SaveThrowTable1Amiga[50] = {
+ 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08, 0x07, 0x05,
+ 0x04, 0x03, 0x12, 0x10, 0x0F, 0x0D, 0x0C, 0x0A,
+ 0x09, 0x07, 0x06, 0x05, 0x11, 0x0F, 0x0E, 0x0C,
+ 0x0B, 0x09, 0x08, 0x06, 0x05, 0x04, 0x14, 0x11,
+ 0x10, 0x0D, 0x0C, 0x09, 0x08, 0x05, 0x04, 0x04,
+ 0x13, 0x11, 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08,
+ 0x07, 0x06
+};
+
+static const ByteProvider kEoB2SaveThrowTable1AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable1Amiga), kEoB2SaveThrowTable1Amiga };
+
+static const byte kEoB2SaveThrowTable2Amiga[25] = {
+ 0x0e, 0x0d, 0x0b, 0x0a, 0x08, 0x0b, 0x09, 0x07,
+ 0x05, 0x03, 0x0d, 0x0b, 0x09, 0x07, 0x05, 0x0f,
+ 0x0d, 0x0b, 0x09, 0x07, 0x0c, 0x0a, 0x08, 0x06,
+ 0x04
+};
+
+static const ByteProvider kEoB2SaveThrowTable2AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable2Amiga), kEoB2SaveThrowTable2Amiga };
+
+static const byte kEoB2SaveThrowTable3Amiga[35] = {
+ 0x0a, 0x09, 0x07, 0x06, 0x05, 0x04, 0x02, 0x0e,
+ 0x0d, 0x0b, 0x0a, 0x09, 0x08, 0x06, 0x0d, 0x0c,
+ 0x0a, 0x09, 0x08, 0x07, 0x05, 0x10, 0x0f, 0x0d,
+ 0x0c, 0x0b, 0x0a, 0x08, 0x0f, 0x0e, 0x0c, 0x0b,
+ 0x0a, 0x09, 0x07
+};
+
+static const ByteProvider kEoB2SaveThrowTable3AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable3Amiga), kEoB2SaveThrowTable3Amiga };
+
+static const byte kEoB2SaveThrowTable4Amiga[30] = {
+ 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, 0x0e, 0x0c,
+ 0x0a, 0x08, 0x06, 0x07, 0x0c, 0x0b, 0x0a, 0x09,
+ 0x08, 0x04, 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b,
+ 0x0f, 0x0d, 0x0b, 0x09, 0x07, 0x05
+};
+
+static const ByteProvider kEoB2SaveThrowTable4AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable4Amiga), kEoB2SaveThrowTable4Amiga };
+
+static const byte kEoB2SaveThrwLvlIndexAmiga[6] = {
+ 0x11, 0x15, 0x13, 0x15, 0x11, 0x11
+};
+
+static const ByteProvider kEoB2SaveThrwLvlIndexAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwLvlIndexAmiga), kEoB2SaveThrwLvlIndexAmiga };
+
+static const byte kEoB2SaveThrwModDivAmiga[6] = {
+ 0x02, 0x05, 0x03, 0x04, 0x02, 0x02
+};
+
+static const ByteProvider kEoB2SaveThrwModDivAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwModDivAmiga), kEoB2SaveThrwModDivAmiga };
+
+static const byte kEoB2SaveThrwModExtAmiga[6] = {
+ 0x0A, 0x05, 0x07, 0x06, 0x0A, 0x0A
+};
+
+static const ByteProvider kEoB2SaveThrwModExtAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwModExtAmiga), kEoB2SaveThrwModExtAmiga };
+
+static const char *const kEoB2EnchantedStringAmiga[1] = {
+ "+%d %s"
+};
+
+static const StringListProvider kEoB2EnchantedStringAmigaProvider = { ARRAYSIZE(kEoB2EnchantedStringAmiga), kEoB2EnchantedStringAmiga };
+
+static const char *const kEoB2MenuStringsSpellNoAmiga[3] = {
+ "6",
+ "7",
+ "8"
+};
+
+static const StringListProvider kEoB2MenuStringsSpellNoAmigaProvider = { ARRAYSIZE(kEoB2MenuStringsSpellNoAmiga), kEoB2MenuStringsSpellNoAmiga };
+
+static const byte kEoB2SpellLevelsMageAmiga[35] = {
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05,
+ 0x05, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x08,
+ 0x00, 0x01, 0x01
+};
+
+static const ByteProvider kEoB2SpellLevelsMageAmigaProvider = { ARRAYSIZE(kEoB2SpellLevelsMageAmiga), kEoB2SpellLevelsMageAmiga };
+
+static const byte kEoB2SpellLevelsClericAmiga[29] = {
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02,
+ 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04,
+ 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06,
+ 0x06, 0x06, 0x08, 0x08, 0x00
+};
+
+static const ByteProvider kEoB2SpellLevelsClericAmigaProvider = { ARRAYSIZE(kEoB2SpellLevelsClericAmiga), kEoB2SpellLevelsClericAmiga };
+
+static const byte kEoB2NumSpellsClericAmiga[136] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00,
+ 0x05, 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00,
+ 0x06, 0x05, 0x05, 0x03, 0x02, 0x02, 0x00, 0x00,
+ 0x06, 0x06, 0x06, 0x04, 0x02, 0x02, 0x00, 0x00,
+ 0x06, 0x06, 0x06, 0x05, 0x03, 0x02, 0x01, 0x00,
+ 0x06, 0x06, 0x06, 0x06, 0x04, 0x02, 0x01, 0x00,
+ 0x07, 0x07, 0x07, 0x06, 0x04, 0x03, 0x01, 0x00,
+ 0x07, 0x07, 0x07, 0x07, 0x05, 0x03, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsClericAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsClericAmiga), kEoB2NumSpellsClericAmiga };
+
+static const byte kEoB2NumSpellsWisAdjAmiga[64] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsWisAdjAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsWisAdjAmiga), kEoB2NumSpellsWisAdjAmiga };
+
+static const byte kEoB2NumSpellsPalAmiga[136] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsPalAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsPalAmiga), kEoB2NumSpellsPalAmiga };
+
+static const byte kEoB2NumSpellsMageAmiga[136] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x04, 0x03, 0x03, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x04, 0x04, 0x04, 0x01, 0x00, 0x00,
+ 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x00, 0x00,
+ 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x01, 0x00,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x01, 0x00,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x02, 0x01,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x03, 0x02
+};
+
+static const ByteProvider kEoB2NumSpellsMageAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsMageAmiga), kEoB2NumSpellsMageAmiga };
+
+static const uint32 kEoB2ExperienceTable0Amiga[14] = {
+ 0x00000000, 0x000007D0, 0x00000FA0, 0x00001F40, 0x00003E80, 0x00007D00, 0x0000FA00, 0x0001E848,
+ 0x0003D090, 0x0007A120, 0x000B71B0, 0x000F4240, 0x001312D0, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable0AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable0Amiga), kEoB2ExperienceTable0Amiga };
+
+static const uint32 kEoB2ExperienceTable1Amiga[14] = {
+ 0x00000000, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x0000EA60, 0x00015F90,
+ 0x00020F58, 0x0003D090, 0x0005B8D8, 0x000B71B0, 0x00112A88, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable1AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable1Amiga), kEoB2ExperienceTable1Amiga };
+
+static const uint32 kEoB2ExperienceTable2Amiga[14] = {
+ 0x00000000, 0x000005DC, 0x00000BB8, 0x00001770, 0x000032C8, 0x00006B6C, 0x0000D6D8, 0x0001ADB0,
+ 0x00036EE8, 0x0006DDD0, 0x000A4CB8, 0x000DBBA0, 0x00112A88, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable2AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable2Amiga), kEoB2ExperienceTable2Amiga };
+
+static const uint32 kEoB2ExperienceTable3Amiga[14] = {
+ 0x00000000, 0x000004E2, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x00011170,
+ 0x0001ADB0, 0x00027100, 0x00035B60, 0x0006B6C0, 0x000A1220, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable3AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable3Amiga), kEoB2ExperienceTable3Amiga };
+
+static const uint32 kEoB2ExperienceTable4Amiga[14] = {
+ 0x00000000, 0x000008CA, 0x00001194, 0x00002328, 0x00004650, 0x00008CA0, 0x000124F8, 0x000249F0,
+ 0x000493E0, 0x000927C0, 0x000DBBA0, 0x00124F80, 0x0016E360, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable4AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable4Amiga), kEoB2ExperienceTable4Amiga };
+
+static const byte kEoB2ExpObjectTlModeAmiga[18] = {
+ 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00,
+ 0x01, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x02, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTlModeAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTlModeAmiga), kEoB2ExpObjectTlModeAmiga };
+
+static const byte kEoB2ExpObjectTblIndexAmiga[14] = {
+ 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTblIndexAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTblIndexAmiga), kEoB2ExpObjectTblIndexAmiga };
+
+static const byte kEoB2ExpObjectShpStartAmiga[4] = {
+ 0x07, 0x0C, 0x0F, 0x12
+};
+
+static const ByteProvider kEoB2ExpObjectShpStartAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectShpStartAmiga), kEoB2ExpObjectShpStartAmiga };
+
+static const byte kEoB2ExpObjectTbl1Amiga[13] = {
+ 0x1f, 0x17, 0x1f, 0x17, 0x18, 0x17, 0x18, 0x19,
+ 0x18, 0x19, 0x18, 0x19, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl1AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl1Amiga), kEoB2ExpObjectTbl1Amiga };
+
+static const byte kEoB2ExpObjectTbl2Amiga[10] = {
+ 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1d, 0x1e, 0x1d,
+ 0x1e, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl2AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl2Amiga), kEoB2ExpObjectTbl2Amiga };
+
+static const byte kEoB2ExpObjectTbl3Amiga[11] = {
+ 0x17, 0x1b, 0x17, 0x1b, 0x08, 0x1b, 0x08, 0x1e,
+ 0x08, 0x1e, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl3AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl3Amiga), kEoB2ExpObjectTbl3Amiga };
+
+static const byte kEoB2ExpObjectYAmiga[4] = {
+ 0x77, 0x67, 0x4F, 0x3F
+};
+
+static const ByteProvider kEoB2ExpObjectYAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectYAmiga), kEoB2ExpObjectYAmiga };
+
+static const byte kEoB2SparkDefStepsAmiga[8] = {
+ 0x40, 0x90, 0xE4, 0xB9, 0x6E, 0x1B, 0x06, 0x01
+};
+
+static const ByteProvider kEoB2SparkDefStepsAmigaProvider = { ARRAYSIZE(kEoB2SparkDefStepsAmiga), kEoB2SparkDefStepsAmiga };
+
+static const byte kEoB2SparkDefSubStepsAmiga[4] = {
+ 0xC0, 0x30, 0x0C, 0x03
+};
+
+static const ByteProvider kEoB2SparkDefSubStepsAmigaProvider = { ARRAYSIZE(kEoB2SparkDefSubStepsAmiga), kEoB2SparkDefSubStepsAmiga };
+
+static const byte kEoB2SparkDefShiftAmiga[4] = {
+ 0x06, 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2SparkDefShiftAmigaProvider = { ARRAYSIZE(kEoB2SparkDefShiftAmiga), kEoB2SparkDefShiftAmiga };
+
+static const byte kEoB2SparkDefAddAmiga[8] = {
+ 0x08, 0x06, 0x1C, 0x14, 0x0D, 0x18, 0x0D, 0x0F
+};
+
+static const ByteProvider kEoB2SparkDefAddAmigaProvider = { ARRAYSIZE(kEoB2SparkDefAddAmiga), kEoB2SparkDefAddAmiga };
+
+static const byte kEoB2SparkDefXAmiga[6] = {
+ 0x17, 0x20, 0x17, 0x20, 0x17, 0x20
+};
+
+static const ByteProvider kEoB2SparkDefXAmigaProvider = { ARRAYSIZE(kEoB2SparkDefXAmiga), kEoB2SparkDefXAmiga };
+
+static const byte kEoB2SparkDefYAmiga[6] = {
+ 0x02, 0x02, 0x34, 0x34, 0x66, 0x66
+};
+
+static const ByteProvider kEoB2SparkDefYAmigaProvider = { ARRAYSIZE(kEoB2SparkDefYAmiga), kEoB2SparkDefYAmiga };
+
+static const uint32 kEoB2SparkOfFlags1Amiga[11] = {
+ 0x40000000, 0x95000000, 0xEA550000, 0xBFAA5400, 0x6AFFA954, 0x15AAFEA9, 0x0055ABFE, 0x000056AB,
+ 0x00000156, 0x00000001, 0x00000000
+};
+
+static const Uint32Provider kEoB2SparkOfFlags1AmigaProvider = { ARRAYSIZE(kEoB2SparkOfFlags1Amiga), kEoB2SparkOfFlags1Amiga };
+
+static const uint32 kEoB2SparkOfFlags2Amiga[16] = {
+ 0xC0000000, 0x30000000, 0x0C000000, 0x03000000, 0x00C00000, 0x00300000, 0x000C0000, 0x00030000,
+ 0x0000C000, 0x00003000, 0x00000C00, 0x00000300, 0x000000C0, 0x00000030, 0x0000000C, 0x00000003
+};
+
+static const Uint32Provider kEoB2SparkOfFlags2AmigaProvider = { ARRAYSIZE(kEoB2SparkOfFlags2Amiga), kEoB2SparkOfFlags2Amiga };
+
+static const byte kEoB2SparkOfShiftAmiga[16] = {
+ 0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x12, 0x10,
+ 0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2SparkOfShiftAmigaProvider = { ARRAYSIZE(kEoB2SparkOfShiftAmiga), kEoB2SparkOfShiftAmiga };
+
+static const byte kEoB2SparkOfXAmiga[16] = {
+ 0x50, 0x70, 0x30, 0x68, 0x20, 0x60, 0x38, 0x78,
+ 0x80, 0x48, 0x58, 0x28, 0x60, 0x40, 0x70, 0x48
+};
+
+static const ByteProvider kEoB2SparkOfXAmigaProvider = { ARRAYSIZE(kEoB2SparkOfXAmiga), kEoB2SparkOfXAmiga };
+
+static const byte kEoB2SparkOfYAmiga[16] = {
+ 0x31, 0x2B, 0x48, 0x17, 0x16, 0x48, 0x35, 0x1B,
+ 0x43, 0x2E, 0x24, 0x28, 0x38, 0x1C, 0x16, 0x44
+};
+
+static const ByteProvider kEoB2SparkOfYAmigaProvider = { ARRAYSIZE(kEoB2SparkOfYAmiga), kEoB2SparkOfYAmiga };
+
+static const byte kEoB2SpellPropertiesAmiga[1820] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0b, 0xc6, 0x00, 0x01,
+ 0xb6, 0xbe, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x0b, 0xcc,
+ 0x00, 0x01, 0xb7, 0x2a, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03,
+ 0x0b, 0xda, 0x00, 0x01, 0xb8, 0x52, 0x00, 0x4c,
+ 0x00, 0x03, 0x0b, 0x3e, 0x00, 0x01, 0xb8, 0x78,
+ 0x5f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x03, 0x0b, 0xe8, 0x00, 0x01, 0xb8, 0x9e,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0xb8, 0xd6, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x03, 0x0b, 0xf6, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x8b, 0x00, 0x03, 0x0b, 0x46,
+ 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x0b, 0xfe,
+ 0x00, 0x01, 0xb9, 0x16, 0x04, 0x88, 0x00, 0x03,
+ 0x0b, 0x4e, 0x00, 0x01, 0xb9, 0xe2, 0x58, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03,
+ 0x0c, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89,
+ 0x00, 0x03, 0x0b, 0x56, 0x00, 0x00, 0x00, 0x00,
+ 0x4b, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x03, 0x0c, 0x14, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x66, 0x00, 0x00,
+ 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x03, 0x0c, 0x28, 0x00, 0x01,
+ 0xb6, 0x74, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x3a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x03,
+ 0x0c, 0x48, 0x00, 0x01, 0xba, 0x44, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xba, 0x82,
+ 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x03, 0x0c, 0x5a, 0x00, 0x01, 0xb6, 0x18,
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0c, 0x68, 0x00, 0x01,
+ 0xba, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xbb, 0x02, 0x63, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x0c, 0x72,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x48, 0x00, 0x03,
+ 0x0b, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0c, 0x78, 0x00, 0x01, 0xbb, 0x3e, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbb, 0x7c,
+ 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0c, 0x84, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x40,
+ 0x00, 0x00, 0x00, 0x03, 0x0c, 0x9c, 0x00, 0x01,
+ 0xbc, 0x7e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xbc, 0xbc, 0x47, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x0c, 0xac,
+ 0x00, 0x01, 0xbc, 0xf8, 0x04, 0x88, 0x00, 0x03,
+ 0x0b, 0x6e, 0x00, 0x01, 0xbd, 0xc6, 0x66, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03,
+ 0x0c, 0xbc, 0x00, 0x01, 0xbd, 0xf2, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0c, 0xc2, 0x00, 0x01, 0xbe, 0x54,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0xbe, 0x92, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x00, 0x03, 0x0c, 0xcc, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x29, 0x00, 0x03, 0x0b, 0x76,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0c, 0xe2,
+ 0x00, 0x01, 0xbf, 0x18, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0c, 0xf0, 0x00, 0x01, 0xbf, 0x96, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41,
+ 0x00, 0x03, 0x0c, 0xfe, 0x00, 0x01, 0xc0, 0x82,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0xc0, 0xc0, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0d, 0x0c, 0x00, 0x01,
+ 0xc2, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x1a,
+ 0x00, 0x01, 0xc3, 0x58, 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03,
+ 0x0d, 0x28, 0x00, 0x01, 0xc3, 0xce, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x03, 0x0d, 0x38, 0x00, 0x01, 0xc4, 0x48,
+ 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0d, 0x48, 0x00, 0x01,
+ 0xc4, 0x78, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x7e,
+ 0x00, 0x01, 0xc4, 0x92, 0x49, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x54,
+ 0x00, 0x01, 0xc4, 0xac, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03,
+ 0x0d, 0x64, 0x00, 0x01, 0xc5, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0d, 0x74, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x8a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x03,
+ 0x0b, 0x86, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0d, 0x90, 0x00, 0x01, 0xc5, 0x7c, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x03, 0x0d, 0xa4, 0x00, 0x01, 0xc5, 0x9a,
+ 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0d, 0xb6, 0x00, 0x01,
+ 0xb8, 0x52, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x3e,
+ 0x00, 0x01, 0xb8, 0x78, 0x5f, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x0d, 0xc4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x03,
+ 0x0b, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00,
+ 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0d, 0xda, 0x00, 0x01, 0xc5, 0xda, 0x00, 0x39,
+ 0x00, 0x03, 0x0b, 0x96, 0x00, 0x01, 0xc6, 0xbc,
+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0d, 0xde, 0x00, 0x01, 0xc6, 0xe4,
+ 0x24, 0x08, 0x00, 0x03, 0x0b, 0x9e, 0x00, 0x01,
+ 0xb9, 0xe2, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x21, 0x00, 0x03, 0x0d, 0xea, 0x00, 0x01,
+ 0xbb, 0x3e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xbb, 0x7c, 0x65, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0xf6,
+ 0x00, 0x01, 0xc7, 0x9e, 0x00, 0x28, 0x00, 0x03,
+ 0x0b, 0xa6, 0x00, 0x01, 0xc8, 0x14, 0x6f, 0x00,
+ 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0e, 0x02, 0x00, 0x01, 0xc8, 0x2e, 0x00, 0x40,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0e, 0x0e, 0x00, 0x01, 0xb6, 0x18,
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0e, 0x1c, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x99, 0x00, 0x03, 0x0b, 0xae,
+ 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0x2e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x03,
+ 0x0b, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0e, 0x36, 0x00, 0x01, 0xc8, 0x6e, 0x00, 0x40,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0e, 0x48, 0x00, 0x01, 0xc9, 0x02,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x03, 0x0e, 0x5e, 0x00, 0x01,
+ 0xc8, 0xbc, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0x72,
+ 0x00, 0x01, 0xc9, 0x26, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0e, 0x84, 0x00, 0x00, 0x00, 0x00, 0x02, 0x48,
+ 0x00, 0x03, 0x0b, 0x8e, 0x00, 0x00, 0x00, 0x00,
+ 0x6e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0e, 0xa4, 0x00, 0x01, 0xc9, 0x5a,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x03, 0x0e, 0xba, 0x00, 0x01,
+ 0xc9, 0x78, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0xd0,
+ 0x00, 0x01, 0xc9, 0xb8, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0xc9, 0xf6, 0x62, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03,
+ 0x0e, 0xde, 0x00, 0x01, 0xca, 0x26, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0e, 0xea, 0x00, 0x01, 0xc4, 0xac,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x03, 0x0e, 0xf6, 0x00, 0x01,
+ 0xc4, 0x78, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x7e,
+ 0x00, 0x01, 0xc4, 0x92, 0x49, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x02,
+ 0x00, 0x01, 0xca, 0x6a, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03,
+ 0x0f, 0x08, 0x00, 0x01, 0xca, 0x86, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1c, 0x00, 0x01,
+ 0xcd, 0xf6, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x2a,
+ 0x00, 0x01, 0xca, 0xea, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0f, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xce, 0x30,
+ 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x4c, 0x00, 0x03, 0x0b, 0xbe, 0x00, 0x00,
+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0f, 0x48, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xce, 0x9a, 0x62, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x4a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0xcc, 0x7e, 0x65, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0f, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcb, 0xfa,
+ 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x0f, 0x4e, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0xcd, 0x0c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0f, 0x50, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xcd, 0x7e, 0x65, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2SpellPropertiesAmigaProvider = { ARRAYSIZE(kEoB2SpellPropertiesAmiga), kEoB2SpellPropertiesAmiga };
+
+static const byte kEoB2MagicFlightPropsAmiga[56] = {
+ 0x04, 0xff, 0x41, 0x0c, 0x0b, 0xff, 0x04, 0x06,
+ 0x0d, 0xff, 0x7a, 0x09, 0x0f, 0xff, 0x4a, 0x08,
+ 0x11, 0x06, 0x38, 0x0a, 0x14, 0x06, 0x7a, 0x0b,
+ 0x18, 0xff, 0x4a, 0x08, 0x36, 0xff, 0x4b, 0x09,
+ 0x3f, 0xff, 0x4b, 0x09, 0x41, 0x06, 0x4b, 0x09,
+ 0x42, 0x06, 0x4b, 0x08, 0x43, 0x06, 0x4b, 0x08,
+ 0x44, 0x06, 0x4b, 0x08, 0x45, 0x06, 0x4b, 0x08
+};
+
+static const ByteProvider kEoB2MagicFlightPropsAmigaProvider = { ARRAYSIZE(kEoB2MagicFlightPropsAmiga), kEoB2MagicFlightPropsAmiga };
+
+static const byte kEoB2TurnUndeadEffectAmiga[140] = {
+ 0x0a, 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x0a,
+ 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x10, 0x0d, 0x0a, 0x07,
+ 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x14, 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x14,
+ 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0x00, 0x63, 0x63, 0x14, 0x13,
+ 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10,
+ 0x0d, 0x0a, 0x07, 0x04, 0x04, 0x00, 0x00, 0x00,
+ 0x63, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0d,
+ 0x0a, 0x07, 0x07, 0x04, 0x04, 0x00, 0x63, 0x63,
+ 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0d, 0x0a,
+ 0x0a, 0x07, 0x07, 0x04
+};
+
+static const ByteProvider kEoB2TurnUndeadEffectAmigaProvider = { ARRAYSIZE(kEoB2TurnUndeadEffectAmiga), kEoB2TurnUndeadEffectAmiga };
+
+static const byte kEoB2BurningHandsDestAmiga[32] = {
+ 0x02, 0x03, 0x04, 0x01, 0x02, 0x05, 0x00, 0x00,
+ 0x00, 0x02, 0x04, 0x01, 0x03, 0x05, 0x00, 0x00,
+ 0x00, 0x01, 0x04, 0x02, 0x03, 0x05, 0x00, 0x00,
+ 0x01, 0x03, 0x04, 0x00, 0x02, 0x05, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2BurningHandsDestAmigaProvider = { ARRAYSIZE(kEoB2BurningHandsDestAmiga), kEoB2BurningHandsDestAmiga };
+
+static const byte kEoB2ConeOfColdDest1Amiga[7] = {
+ 0xE0, 0xC0, 0xC1, 0xBF, 0xA0, 0x9F, 0xA1
+};
+
+static const ByteProvider kEoB2ConeOfColdDest1AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest1Amiga), kEoB2ConeOfColdDest1Amiga };
+
+static const byte kEoB2ConeOfColdDest2Amiga[7] = {
+ 0x01, 0x02, 0xE2, 0x22, 0x03, 0xE3, 0x23
+};
+
+static const ByteProvider kEoB2ConeOfColdDest2AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest2Amiga), kEoB2ConeOfColdDest2Amiga };
+
+static const byte kEoB2ConeOfColdDest3Amiga[7] = {
+ 0x20, 0x40, 0x3F, 0x41, 0x60, 0x5F, 0x61
+};
+
+static const ByteProvider kEoB2ConeOfColdDest3AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest3Amiga), kEoB2ConeOfColdDest3Amiga };
+
+static const byte kEoB2ConeOfColdDest4Amiga[7] = {
+ 0xFF, 0xFE, 0x1E, 0xDE, 0xFD, 0x1D, 0xDD
+};
+
+static const ByteProvider kEoB2ConeOfColdDest4AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest4Amiga), kEoB2ConeOfColdDest4Amiga };
+
+static const byte kEoB2ConeOfColdGfxTblAmiga[8] = {
+ 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1d, 0x1d, 0x00
+};
+
+static const ByteProvider kEoB2ConeOfColdGfxTblAmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdGfxTblAmiga), kEoB2ConeOfColdGfxTblAmiga };
+
+static const byte kEoB2DscDoorShapeIndexAmiga[53] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01
+};
+
+static const ByteProvider kEoB2DscDoorShapeIndexAmigaProvider = { ARRAYSIZE(kEoB2DscDoorShapeIndexAmiga), kEoB2DscDoorShapeIndexAmiga };
+
+static const byte kEoB2WllFlagPresetAmiga[25] = {
+ 0x07, 0x00, 0x40, 0xA8, 0x88, 0x88, 0x88, 0x9F,
+ 0xA8, 0x88, 0x88, 0x88, 0x9F, 0xA8, 0x88, 0x88,
+ 0x88, 0x9F, 0xA8, 0x88, 0x88, 0x88, 0x9F, 0x03,
+ 0x03
+};
+
+static const ByteProvider kEoB2WllFlagPresetAmigaProvider = { ARRAYSIZE(kEoB2WllFlagPresetAmiga), kEoB2WllFlagPresetAmiga };
+
+static const uint16 kEoB2DscShapeCoordsAmiga[180] = {
+ 0xff91, 0xffc1, 0xffa1, 0xffc1, 0xff75, 0xffc5, 0xff8b, 0xffc5,
+ 0xff88, 0xffc3, 0xffb4, 0xffc1, 0xffc4, 0xffc1, 0xffa1, 0xffc5,
+ 0xffb6, 0xffc5, 0xffb0, 0xffc3, 0xffd5, 0xffc1, 0xffe5, 0xffc1,
+ 0xffcb, 0xffc5, 0xffe1, 0xffc5, 0xffd8, 0xffc3, 0xfff8, 0xffc1,
+ 0x0008, 0xffc1, 0xfff6, 0xffc5, 0x000a, 0xffc5, 0x0000, 0xffc3,
+ 0x001b, 0xffc1, 0x002b, 0xffc1, 0x001f, 0xffc5, 0x0035, 0xffc5,
+ 0x0028, 0xffc3, 0x003c, 0xffc1, 0x004c, 0xffc1, 0x004a, 0xffc5,
+ 0x005f, 0xffc5, 0x0050, 0xffc3, 0x005f, 0xffc1, 0x006f, 0xffc1,
+ 0x0075, 0xffc5, 0x008b, 0xffc5, 0x0078, 0xffc3, 0xff8a, 0xffcb,
+ 0xffa4, 0xffcb, 0xff68, 0xffd3, 0xff88, 0xffd3, 0xff8a, 0xffce,
+ 0xffbe, 0xffcb, 0xffd8, 0xffcb, 0xffac, 0xffd3, 0xffcd, 0xffd3,
+ 0xffc5, 0xffce, 0xfff3, 0xffcb, 0x000d, 0xffcb, 0xfff0, 0xffd3,
+ 0x0010, 0xffd3, 0x0000, 0xffce, 0x0028, 0xffcb, 0x0042, 0xffcb,
+ 0x0033, 0xffd3, 0x0054, 0xffd3, 0x003b, 0xffce, 0x005c, 0xffcb,
+ 0x0076, 0xffcb, 0x0078, 0xffd3, 0x0098, 0xffd3, 0x0076, 0xffce,
+ 0xff92, 0xffdd, 0xffbd, 0xffdd, 0xff74, 0xffea, 0xffad, 0xffea,
+ 0xff9e, 0xffe2, 0xffea, 0xffdd, 0x0016, 0xffdd, 0xffe5, 0xffea,
+ 0x001b, 0xffea, 0x0000, 0xffe2, 0x0043, 0xffdd, 0x006e, 0xffdd,
+ 0x0053, 0xffea, 0x008c, 0xffea, 0x0062, 0xffe2, 0xff80, 0xfffc,
+ 0x0080, 0xfffc, 0xff80, 0xffbe, 0x0080, 0xffbe, 0x0080, 0x0000,
+ 0xffda, 0xfffc, 0x0026, 0xfffc, 0xffda, 0xffbe, 0x0026, 0xffbe,
+ 0x0000, 0x0000, 0xff80, 0xfffc, 0x0080, 0xfffc, 0xff80, 0xffbe,
+ 0x0080, 0xffbe, 0x0080, 0x0000
+};
+
+static const Uint16Provider kEoB2DscShapeCoordsAmigaProvider = { ARRAYSIZE(kEoB2DscShapeCoordsAmiga), kEoB2DscShapeCoordsAmiga };
+
+static const byte kEoB2DscDoorScaleOffsAmiga[53] = {
+ 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
+ 0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x33, 0x34
+};
+
+static const ByteProvider kEoB2DscDoorScaleOffsAmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleOffsAmiga), kEoB2DscDoorScaleOffsAmiga };
+
+static const byte kEoB2DscDoorScaleMult1Amiga[4] = {
+ 0x08, 0x0C, 0x12, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult1Amiga), kEoB2DscDoorScaleMult1Amiga };
+
+static const byte kEoB2DscDoorScaleMult2Amiga[4] = {
+ 0x00, 0x02, 0x04, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult2Amiga), kEoB2DscDoorScaleMult2Amiga };
+
+static const byte kEoB2DscDoorScaleMult3Amiga[4] = {
+ 0x05, 0x08, 0x0C, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult3AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult3Amiga), kEoB2DscDoorScaleMult3Amiga };
+
+static const byte kEoB2DscDoorType5OffsAmiga[6] = {
+ 0x05, 0x03, 0x01, 0x05, 0x03, 0x01
+};
+
+static const ByteProvider kEoB2DscDoorType5OffsAmigaProvider = { ARRAYSIZE(kEoB2DscDoorType5OffsAmiga), kEoB2DscDoorType5OffsAmiga };
+
+static const byte kEoB2DscDoorY1Amiga[4] = {
+ 0x3B, 0x47, 0x56, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorY1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorY1Amiga), kEoB2DscDoorY1Amiga };
+
+static const byte kEoB2DscDoorY2Amiga[4] = {
+ 0x1F, 0x18, 0x0F, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorY2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorY2Amiga), kEoB2DscDoorY2Amiga };
+
+static const byte kEoB2DscDoorFrameY1Amiga[4] = {
+ 0x1E, 0x18, 0x10, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorFrameY1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorFrameY1Amiga), kEoB2DscDoorFrameY1Amiga };
+
+static const byte kEoB2DscDoorFrameY2Amiga[4] = {
+ 0x3B, 0x47, 0x56, 0x78
+};
+
+static const ByteProvider kEoB2DscDoorFrameY2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorFrameY2Amiga), kEoB2DscDoorFrameY2Amiga };
+
+static const byte kEoB2DscItemPosIndexAmiga[16] = {
+ 0x00, 0x01, 0x02, 0x03, 0x02, 0x00, 0x03, 0x01,
+ 0x03, 0x02, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02
+};
+
+static const ByteProvider kEoB2DscItemPosIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemPosIndexAmiga), kEoB2DscItemPosIndexAmiga };
+
+static const uint16 kEoB2DscItemShpXAmiga[18] = {
+ 0xFFC8, 0xFFF8, 0x0028, 0x0058, 0x0088, 0x00B8, 0x00E8, 0xFFB8,
+ 0x0008, 0x0058, 0x00A8, 0x00F8, 0xFFD8, 0x0058, 0x00D8, 0xFFA8,
+ 0x0058, 0x0108
+};
+
+static const Uint16Provider kEoB2DscItemShpXAmigaProvider = { ARRAYSIZE(kEoB2DscItemShpXAmiga), kEoB2DscItemShpXAmiga };
+
+static const byte kEoB2DscItemScaleIndexAmiga[18] = {
+ 0xFF, 0xFF, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02,
+ 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF,
+ 0x25, 0x00
+};
+
+static const ByteProvider kEoB2DscItemScaleIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemScaleIndexAmiga), kEoB2DscItemScaleIndexAmiga };
+
+static const byte kEoB2DscItemTileIndexAmiga[18] = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x09, 0xFF, 0x0B,
+ 0x0C, 0x0D
+};
+
+static const ByteProvider kEoB2DscItemTileIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemTileIndexAmiga), kEoB2DscItemTileIndexAmiga };
+
+static const byte kEoB2DscItemShapeMapAmiga[113] = {
+ 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, 0x03, 0x04,
+ 0x03, 0x05, 0x06, 0x06, 0x12, 0x05, 0x0f, 0x12,
+ 0x14, 0x08, 0x13, 0x11, 0x15, 0x18, 0x07, 0x07,
+ 0x07, 0x1f, 0x09, 0x23, 0x09, 0x09, 0x09, 0x09,
+ 0x08, 0x1c, 0x1c, 0x1a, 0x1b, 0x21, 0x1d, 0x1d,
+ 0x22, 0x22, 0x22, 0x00, 0x16, 0x00, 0x00, 0x17,
+ 0x17, 0x17, 0x17, 0x17, 0x22, 0x21, 0x19, 0x23,
+ 0x10, 0x1e, 0x17, 0x25, 0x17, 0x26, 0x12, 0x21,
+ 0x17, 0x23, 0x1c, 0x00, 0x20, 0x25, 0x12, 0x18,
+ 0x1f, 0x07, 0x07, 0x15, 0x15, 0x0f, 0x03, 0x09,
+ 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b,
+ 0x1b, 0x17, 0x17, 0x16, 0x16, 0x21, 0x08, 0x25,
+ 0x25, 0x25, 0x25, 0x28, 0x03, 0x04, 0x21, 0x00,
+ 0x17, 0x00, 0x20, 0x24, 0x27, 0x27, 0x1c, 0x27,
+ 0x00
+};
+
+static const ByteProvider kEoB2DscItemShapeMapAmigaProvider = { ARRAYSIZE(kEoB2DscItemShapeMapAmiga), kEoB2DscItemShapeMapAmiga };
+
+static const byte kEoB2DscTelptrShpCoordsAmiga[156] = {
+ 0x0c, 0x07, 0x1a, 0x01, 0x3e, 0x03, 0x0c, 0x1a,
+ 0x2a, 0x13, 0x40, 0x18, 0x02, 0x2d, 0x16, 0x25,
+ 0x28, 0x32, 0x36, 0x27, 0x0a, 0x3e, 0x16, 0x49,
+ 0x3e, 0x44, 0x06, 0x06, 0x2a, 0x04, 0x37, 0x0a,
+ 0x04, 0x1b, 0x1a, 0x16, 0x37, 0x1d, 0x0e, 0x2a,
+ 0x1b, 0x35, 0x2e, 0x28, 0x42, 0x30, 0x06, 0x47,
+ 0x06, 0x47, 0x2d, 0x4c, 0x0a, 0x04, 0x14, 0x00,
+ 0x2e, 0x01, 0x0c, 0x10, 0x1f, 0x10, 0x2f, 0x10,
+ 0x12, 0x18, 0x28, 0x1d, 0x01, 0x21, 0x08, 0x2a,
+ 0x11, 0x32, 0x2f, 0x2e, 0x1f, 0x25, 0x02, 0x02,
+ 0x01, 0x11, 0x01, 0x2f, 0x08, 0x1e, 0x11, 0x0e,
+ 0x11, 0x26, 0x1c, 0x01, 0x1e, 0x19, 0x1f, 0x33,
+ 0x24, 0x11, 0x26, 0x05, 0x28, 0x2b, 0x2f, 0x22,
+ 0x00, 0x13, 0x05, 0x01, 0x06, 0x08, 0x09, 0x0c,
+ 0x04, 0x1a, 0x08, 0x1f, 0x12, 0x05, 0x12, 0x15,
+ 0x16, 0x10, 0x1a, 0x08, 0x1a, 0x1d, 0x0a, 0x00,
+ 0x0a, 0x00, 0x00, 0x09, 0x00, 0x1e, 0x04, 0x11,
+ 0x08, 0x16, 0x08, 0x06, 0x10, 0x00, 0x11, 0x0d,
+ 0x12, 0x20, 0x15, 0x02, 0x14, 0x09, 0x16, 0x1b,
+ 0x1a, 0x14, 0x1a, 0x14
+};
+
+static const ByteProvider kEoB2DscTelptrShpCoordsAmigaProvider = { ARRAYSIZE(kEoB2DscTelptrShpCoordsAmiga), kEoB2DscTelptrShpCoordsAmiga };
+
+static const byte kEoB2PortalSeqDataAmiga[126] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00,
+ 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00,
+ 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+ 0x00, 0x01, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02,
+ 0x02, 0x03, 0x01, 0x04, 0x00, 0x02, 0x01, 0x03,
+ 0x02, 0x04, 0x03, 0x02, 0x04, 0x03, 0x03, 0x04,
+ 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,
+ 0x04, 0x04, 0x04, 0x05, 0x04, 0x06, 0x03, 0x07,
+ 0x02, 0x08, 0x02, 0x08, 0x01, 0x09, 0x01, 0x09,
+ 0x01, 0x09, 0x00, 0x0a, 0xff, 0xff
+};
+
+static const ByteProvider kEoB2PortalSeqDataAmigaProvider = { ARRAYSIZE(kEoB2PortalSeqDataAmiga), kEoB2PortalSeqDataAmiga };
+
+static const byte kEoB2DscMonsterFrmOffsTbl1Amiga[32] = {
+ 0x04, 0xfe, 0x01, 0x03, 0x03, 0x04, 0xfe, 0x01,
+ 0x01, 0x03, 0x04, 0xfe, 0xfe, 0x01, 0x03, 0x04,
+ 0xfc, 0xfd, 0xff, 0x02, 0x02, 0xfc, 0xfd, 0xff,
+ 0xff, 0x02, 0xfc, 0xfd, 0xfd, 0xff, 0x02, 0xfc
+};
+
+static const ByteProvider kEoB2DscMonsterFrmOffsTbl1AmigaProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl1Amiga), kEoB2DscMonsterFrmOffsTbl1Amiga };
+
+static const byte kEoB2DscMonsterFrmOffsTbl2Amiga[32] = {
+ 0x04, 0xfe, 0x01, 0x03, 0x03, 0x04, 0xfe, 0x01,
+ 0x01, 0x03, 0x04, 0xfe, 0xfe, 0x01, 0x03, 0x04,
+ 0x04, 0xfd, 0x01, 0x02, 0x02, 0x04, 0xfd, 0x01,
+ 0x01, 0x02, 0x04, 0xfd, 0xfd, 0x01, 0x02, 0x04
+};
+
+static const ByteProvider kEoB2DscMonsterFrmOffsTbl2AmigaProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl2Amiga), kEoB2DscMonsterFrmOffsTbl2Amiga };
+
+static const uint16 kEoB2InvSlotXAmiga[27] = {
+ 0x00e6, 0x0116, 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7,
+ 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7,
+ 0x00e1, 0x00e0, 0x00e1, 0x012a, 0x011f, 0x0115, 0x012c, 0x012c,
+ 0x012c, 0x00e4, 0x00f0
+};
+
+static const Uint16Provider kEoB2InvSlotXAmigaProvider = { ARRAYSIZE(kEoB2InvSlotXAmiga), kEoB2InvSlotXAmiga };
+
+static const byte kEoB2InvSlotYAmiga[27] = {
+ 0x74, 0x74, 0x28, 0x28, 0x3a, 0x3a, 0x4c, 0x4c,
+ 0x5e, 0x5e, 0x70, 0x70, 0x82, 0x82, 0x94, 0x94,
+ 0x38, 0x4c, 0x60, 0x37, 0x4b, 0x89, 0x5e, 0x70,
+ 0x82, 0x88, 0x88
+};
+
+static const ByteProvider kEoB2InvSlotYAmigaProvider = { ARRAYSIZE(kEoB2InvSlotYAmiga), kEoB2InvSlotYAmiga };
+
+static const uint16 kEoB2SlotValidationFlagsAmiga[27] = {
+ 0x0008, 0x0008, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x0001, 0x0002, 0x0004, 0x0020, 0x0040, 0x0010, 0xffff, 0x0080,
+ 0x0080, 0x0100, 0x0100
+};
+
+static const Uint16Provider kEoB2SlotValidationFlagsAmigaProvider = { ARRAYSIZE(kEoB2SlotValidationFlagsAmiga), kEoB2SlotValidationFlagsAmiga };
+
+static const byte kEoB2ProjectileWeaponTypesAmiga[15] = {
+ 0xFF, 0x01, 0xFF, 0x02, 0x04, 0x03, 0x05, 0x10,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x12
+};
+
+static const ByteProvider kEoB2ProjectileWeaponTypesAmigaProvider = { ARRAYSIZE(kEoB2ProjectileWeaponTypesAmiga), kEoB2ProjectileWeaponTypesAmiga };
+
+static const byte kEoB2WandTypesAmiga[8] = {
+ 0x00, 0x11, 0x17, 0x31, 0x0D, 0xFF, 0x04, 0x0C
+};
+
+static const ByteProvider kEoB2WandTypesAmigaProvider = { ARRAYSIZE(kEoB2WandTypesAmiga), kEoB2WandTypesAmiga };
+
+static const byte kEoB2DrawObjPosIndexAmiga[20] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x03,
+ 0x01, 0x04, 0x02, 0x03, 0x00, 0x01, 0x04, 0x01,
+ 0x03, 0x00, 0x02, 0x04
+};
+
+static const ByteProvider kEoB2DrawObjPosIndexAmigaProvider = { ARRAYSIZE(kEoB2DrawObjPosIndexAmiga), kEoB2DrawObjPosIndexAmiga };
+
+static const byte kEoB2FlightObjFlipIndexAmiga[16] = {
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2FlightObjFlipIndexAmigaProvider = { ARRAYSIZE(kEoB2FlightObjFlipIndexAmiga), kEoB2FlightObjFlipIndexAmiga };
+
+static const byte kEoB2FlightObjShpMapAmiga[45] = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02,
+ 0xFF, 0xFF, 0x04, 0xFF, 0x06, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2FlightObjShpMapAmigaProvider = { ARRAYSIZE(kEoB2FlightObjShpMapAmiga), kEoB2FlightObjShpMapAmiga };
+
+static const byte kEoB2FlightObjSclIndexAmiga[72] = {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03,
+ 0xff, 0xff, 0x03, 0x03, 0xff, 0xff, 0x03, 0x03,
+ 0xff, 0xff, 0x03, 0x03, 0xff, 0xff, 0x03, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x01, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+static const ByteProvider kEoB2FlightObjSclIndexAmigaProvider = { ARRAYSIZE(kEoB2FlightObjSclIndexAmiga), kEoB2FlightObjSclIndexAmiga };
+
+static const uint16 kEoB2TransferPortraitFramesAmiga[32] = {
+ 0x0004, 0x0018, 0x009d, 0x0038, 0x00a2, 0x0018, 0x013c, 0x0039,
+ 0x0004, 0x0040, 0x009d, 0x0060, 0x00a2, 0x0040, 0x013c, 0x0060,
+ 0x0004, 0x0068, 0x009d, 0x0089, 0x00a2, 0x0068, 0x013c, 0x0089,
+ 0x0004, 0x0094, 0x002e, 0x009e, 0x0110, 0x0094, 0x013a, 0x009e
+};
+
+static const Uint16Provider kEoB2TransferPortraitFramesAmigaProvider = { ARRAYSIZE(kEoB2TransferPortraitFramesAmiga), kEoB2TransferPortraitFramesAmiga };
+
+static const byte kEoB2TransferConvertTableAmiga[49] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x05, 0x06,
+ 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x0D, 0x00, 0x0E,
+ 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x00, 0x00,
+ 0x17, 0x18, 0x22, 0x24, 0x23, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+ 0x31, 0x30, 0x32, 0x33, 0x00, 0x35, 0x34, 0x36,
+ 0x37
+};
+
+static const ByteProvider kEoB2TransferConvertTableAmigaProvider = { ARRAYSIZE(kEoB2TransferConvertTableAmiga), kEoB2TransferConvertTableAmiga };
+
+static const byte kEoB2TransferItemTableAmiga[60] = {
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01,
+ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01,
+ 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2TransferItemTableAmigaProvider = { ARRAYSIZE(kEoB2TransferItemTableAmiga), kEoB2TransferItemTableAmiga };
+
+static const uint32 kEoB2TransferExpTableAmiga[6] = {
+ 0x000F423F, 0x000B71AF, 0x000DBB9F, 0x0006B6BF, 0x000DBB9F, 0x000DBB9F
+};
+
+static const Uint32Provider kEoB2TransferExpTableAmigaProvider = { ARRAYSIZE(kEoB2TransferExpTableAmiga), kEoB2TransferExpTableAmiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData00Amiga[5] = {
+ { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 },
+ { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 },
+ { 0x00, 0, 216, 51, 8, 0, 0, 0, 0, 0 },
+ { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData00AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData00Amiga), kEoB2IntroAnimData00Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData01Amiga[5] = {
+ { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 },
+ { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 },
+ { 0x00, 0, 216, 51, 7, 0, 0, 0, 0, 0 },
+ { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData01AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData01Amiga), kEoB2IntroAnimData01Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData02Amiga[5] = {
+ { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 },
+ { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 216, 51, 18, 0, 0, 0, 0, 0 },
+ { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData02AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData02Amiga), kEoB2IntroAnimData02Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData03Amiga[4] = {
+ { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 },
+ { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData03AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData03Amiga), kEoB2IntroAnimData03Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData04Amiga[3] = {
+ { 0x01, 0, 282, 8, 1, 0, 0, 0, 0, 0 },
+ { 0x01, 0, 282, 8, 1, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData04AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData04Amiga), kEoB2IntroAnimData04Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData05Amiga[4] = {
+ { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData05AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData05Amiga), kEoB2IntroAnimData05Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData06Amiga[16] = {
+ { 0x01, 12, 170, 11, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 188, 38, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 203, 63, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 218, 85, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 232, 107, 2, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x01, 3, 242, 125, 1, 0, 0, 0, 0, 0 },
+ { 0x01, 4, 240, 125, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 5, 238, 124, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 6, 236, 123, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 7, 232, 121, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 8, 226, 120, 3, 0, 0, 0, 0, 0 },
+ { 0x01, 9, 220, 119, 3, 0, 0, 0, 0, 0 },
+ { 0x01, 10, 241, 115, 3, 0, 0, 0, 0, 0 },
+ { 0x01, 11, 241, 115, 3, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData06AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData06Amiga), kEoB2IntroAnimData06Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData07Amiga[5] = {
+ { 0x01, 12, 54, 17, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 80, 53, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 104, 87, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 130, 124, 2, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData07AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData07Amiga), kEoB2IntroAnimData07Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData08Amiga[6] = {
+ { 0x01, 12, 112, 8, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 126, 34, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 142, 60, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 170, 109, 2, 0, 0, 0, 0, 0 },
+ { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData08AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData08Amiga), kEoB2IntroAnimData08Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData09Amiga[4] = {
+ { 0x05, 0, 184, 64, 6, 0, 30, 8, 3, 16 },
+ { 0x05, 0, 184, 64, 6, 0, 33, 8, 3, 16 },
+ { 0x05, 0, 184, 64, 6, 0, 36, 8, 3, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData09AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData09Amiga), kEoB2IntroAnimData09Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData10Amiga[10] = {
+ { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 },
+ { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 },
+ { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 },
+ { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 },
+ { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 },
+ { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 },
+ { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 },
+ { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 },
+ { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData10AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData10Amiga), kEoB2IntroAnimData10Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData11Amiga[10] = {
+ { 0x03, 15, 36, 48, 2, 1, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 2, 2, 0, 0, 0, 0 },
+ { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 2, 3, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 90, 4, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 2, 3, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 2, 2, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 2, 1, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 2, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData11AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData11Amiga), kEoB2IntroAnimData11Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData12Amiga[4] = {
+ { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 104, 24, 5, 0, 0, 8, 15, 112 },
+ { 0x05, 0, 104, 24, 5, 0, 15, 8, 15, 112 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData12AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData12Amiga), kEoB2IntroAnimData12Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData13Amiga[6] = {
+ { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 },
+ { 0x05, 0, 104, 72, 5, 0, 10, 120, 10, 64 },
+ { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 },
+ { 0x05, 0, 104, 72, 5, 0, 20, 120, 10, 64 },
+ { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData13AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData13Amiga), kEoB2IntroAnimData13Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData14Amiga[4] = {
+ { 0x05, 0, 104, 0, 8, 0, 0, 0, 13, 200 },
+ { 0x05, 0, 104, 0, 8, 0, 13, 0, 13, 200 },
+ { 0x05, 0, 104, 0, 8, 0, 26, 0, 13, 200 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData14AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData14Amiga), kEoB2IntroAnimData14Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData15Amiga[11] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 6, 112, 72, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 7, 112, 72, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 8, 112, 72, 6, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData15AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData15Amiga), kEoB2IntroAnimData15Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData16Amiga[12] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData16AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData16Amiga), kEoB2IntroAnimData16Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData17Amiga[8] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData17AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData17Amiga), kEoB2IntroAnimData17Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData18Amiga[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 11, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 12, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData18AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData18Amiga), kEoB2IntroAnimData18Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData19Amiga[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 10, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 12, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData19AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData19Amiga), kEoB2IntroAnimData19Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData20Amiga[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 15, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 16, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData20AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData20Amiga), kEoB2IntroAnimData20Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData21Amiga[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 10, 0, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData21AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData21Amiga), kEoB2IntroAnimData21Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData22Amiga[2] = {
+ { 0x05, 0, 104, 32, 3, 0, 20, 0, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData22AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData22Amiga), kEoB2IntroAnimData22Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData23Amiga[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 30, 0, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData23AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData23Amiga), kEoB2IntroAnimData23Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData24Amiga[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 0, 96, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData24AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData24Amiga), kEoB2IntroAnimData24Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData25Amiga[2] = {
+ { 0x05, 0, 104, 32, 3, 0, 10, 96, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData25AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData25Amiga), kEoB2IntroAnimData25Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData26Amiga[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 20, 96, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData26AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData26Amiga), kEoB2IntroAnimData26Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData27Amiga[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 0, 0, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData27AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData27Amiga), kEoB2IntroAnimData27Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData28Amiga[2] = {
+ { 0x05, 0, 104, 32, 3, 0, 0, 0, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData28AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData28Amiga), kEoB2IntroAnimData28Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData29Amiga[2] = {
+ { 0x05, 0, 104, 32, 4, 0, 10, 0, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData29AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData29Amiga), kEoB2IntroAnimData29Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData30Amiga[2] = {
+ { 0x05, 0, 104, 32, 8, 0, 20, 0, 10, 96 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData30AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData30Amiga), kEoB2IntroAnimData30Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData31Amiga[5] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 176, 56, 3, 0, 19, 136, 2, 8 },
+ { 0x05, 0, 176, 56, 3, 0, 21, 136, 2, 8 },
+ { 0x05, 0, 176, 56, 3, 0, 23, 136, 2, 8 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData31AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData31Amiga), kEoB2IntroAnimData31Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData32Amiga[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 5, 0, 1, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 2, 0, 23, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 13, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 6, 0, 1, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 23, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 1, 136, 6, 40 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData32AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData32Amiga), kEoB2IntroAnimData32Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData33Amiga[8] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 80, 64, 0, 0, 1, 136, 2, 16 },
+ { 0x05, 0, 248, 64, 3, 0, 7, 136, 2, 16 },
+ { 0x05, 0, 80, 64, 0, 0, 3, 136, 2, 16 },
+ { 0x05, 0, 248, 64, 3, 0, 9, 136, 2, 16 },
+ { 0x05, 0, 80, 64, 0, 0, 5, 136, 2, 16 },
+ { 0x05, 0, 248, 64, 3, 0, 11, 136, 2, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData33AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData33Amiga), kEoB2IntroAnimData33Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData34Amiga[5] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 16, 48, 0, 0, 0, 152, 14, 48 },
+ { 0x05, 0, 192, 48, 4, 0, 14, 128, 13, 48 },
+ { 0x05, 0, 16, 48, 0, 0, 1, 40, 35, 48 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData34AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData34Amiga), kEoB2IntroAnimData34Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData35Amiga[6] = {
+ { 0x06, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 24, 3, 0, 0, 128, 2, 32 },
+ { 0x05, 0, 152, 16, 3, 0, 0, 88, 5, 40 },
+ { 0x05, 0, 128, 0, 3, 0, 0, 0, 10, 88 },
+ { 0x05, 0, 104, 0, 3, 0, 13, 0, 14, 88 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData35AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData35Amiga), kEoB2IntroAnimData35Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData36Amiga[2] = {
+ { 0x05, 0, 104, 0, 0, 0, 13, 0, 13, 200 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData36AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData36Amiga), kEoB2IntroAnimData36Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData37Amiga[25] = {
+ { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 2, 1, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 2, 2, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 2, 3, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 54, 4, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 2, 3, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 2, 2, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 2, 1, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 2, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData37AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData37Amiga), kEoB2IntroAnimData37Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData38Amiga[22] = {
+ { 0x03, 22, 13, 32, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 },
+ { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 90, 4, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 },
+ { 0x03, 22, 13, 32, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData38AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData38Amiga), kEoB2IntroAnimData38Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData39Amiga[3] = {
+ { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData39AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData39Amiga), kEoB2IntroAnimData39Amiga };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData40Amiga[5] = {
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData40AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData40Amiga), kEoB2IntroAnimData40Amiga };
+
+static const DarkMoonShapeDef kEoB2IntroShapes00Amiga[15] = {
+ { 0, 1, 137, 4, 43 },
+ { 1, 5, 137, 4, 54 },
+ { 2, 9, 140, 4, 8 },
+ { 3, 1, 181, 1, 3 },
+ { 4, 9, 154, 1, 3 },
+ { 5, 9, 158, 2, 5 },
+ { 6, 9, 164, 3, 7 },
+ { 7, 9, 172, 3, 11 },
+ { 8, 9, 184, 5, 13 },
+ { 9, 15, 137, 6, 15 },
+ { 10, 15, 153, 2, 21 },
+ { 11, 17, 153, 2, 21 },
+ { 12, 1, 185, 1, 4 },
+ { 13, 1, 190, 1, 1 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes00AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes00Amiga), kEoB2IntroShapes00Amiga };
+
+static const DarkMoonShapeDef kEoB2IntroShapes01Amiga[2] = {
+ { 0, 1, 137, 1, 16 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes01AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes01Amiga), kEoB2IntroShapes01Amiga };
+
+static const DarkMoonShapeDef kEoB2IntroShapes04Amiga[10] = {
+ { 15, 2, 0, 32, 14 },
+ { 16, 5, 16, 5, 8 },
+ { 17, 2, 26, 32, 19 },
+ { 18, 0, 140, 35, 10 },
+ { 19, 21, 16, 3, 8 },
+ { 20, 0, 47, 22, 10 },
+ { 21, 0, 59, 31, 10 },
+ { 22, 0, 71, 36, 39 },
+ { 23, 0, 119, 24, 15 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes04AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes04Amiga), kEoB2IntroShapes04Amiga };
+
+static const DarkMoonShapeDef kEoB2IntroShapes07Amiga[18] = {
+ { -9, 1, 136, 6, 40 },
+ { -1, 7, 136, 6, 40 },
+ { -2, 13, 136, 6, 40 },
+ { 3, 19, 136, 2, 16 },
+ { 4, 21, 136, 2, 16 },
+ { 5, 23, 136, 2, 16 },
+ { 6, 19, 152, 1, 8 },
+ { 7, 20, 152, 1, 8 },
+ { 8, 21, 152, 1, 8 },
+ { -10, 25, 136, 2, 16 },
+ { -11, 27, 136, 2, 16 },
+ { -12, 29, 136, 2, 16 },
+ { -13, 31, 136, 2, 16 },
+ { -14, 25, 152, 2, 16 },
+ { -15, 27, 152, 2, 16 },
+ { -16, 29, 152, 2, 16 },
+ { -17, 31, 152, 2, 16 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes07AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes07Amiga), kEoB2IntroShapes07Amiga };
+
+static const DarkMoonShapeDef kEoB2IntroShapes13Amiga[10] = {
+ { 25, 2, 0, 32, 14 },
+ { 26, 5, 16, 5, 8 },
+ { 27, 2, 26, 32, 19 },
+ { 28, 0, 140, 35, 10 },
+ { 29, 21, 16, 3, 8 },
+ { 30, 0, 47, 22, 10 },
+ { 31, 0, 59, 31, 10 },
+ { 32, 0, 71, 36, 39 },
+ { 33, 0, 119, 24, 15 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes13AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes13Amiga), kEoB2IntroShapes13Amiga };
+
+static const DarkMoonShapeDef kEoB2IntroShapes14Amiga[10] = {
+ { 35, 2, 0, 32, 14 },
+ { 36, 5, 16, 5, 8 },
+ { 37, 2, 26, 32, 19 },
+ { 38, 0, 140, 35, 10 },
+ { 39, 21, 16, 3, 8 },
+ { 40, 0, 47, 22, 10 },
+ { 41, 0, 59, 31, 10 },
+ { 42, 0, 71, 36, 39 },
+ { 43, 0, 119, 24, 15 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes14AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes14Amiga), kEoB2IntroShapes14Amiga };
+
+static const DarkMoonShapeDef kEoB2IntroShapes15Amiga[10] = {
+ { 45, 2, 0, 32, 14 },
+ { 46, 5, 16, 5, 8 },
+ { 47, 2, 26, 32, 19 },
+ { 48, 0, 140, 35, 10 },
+ { 49, 21, 16, 3, 8 },
+ { 50, 0, 47, 22, 10 },
+ { 51, 0, 59, 31, 10 },
+ { 52, 0, 71, 36, 39 },
+ { 53, 0, 119, 24, 15 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes15AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes15Amiga), kEoB2IntroShapes15Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData00Amiga[11] = {
+ { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 136, 8, 8, 0, 5, 136, 11, 48 },
+ { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 88, 4, 0, 0, 88, 8, 48 },
+ { 0x02, 3, 80, 8, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 88, 4, 0, 8, 88, 8, 48 },
+ { 0x05, 0, 232, 88, 4, 0, 16, 88, 8, 48 },
+ { 0x02, 2, 232, 88, 4, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData00AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData00Amiga), kEoB2FinaleAnimData00Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData01Amiga[9] = {
+ { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 136, 8, 12, 0, 5, 136, 11, 48 },
+ { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 88, 6, 0, 0, 88, 8, 48 },
+ { 0x05, 0, 232, 88, 6, 0, 8, 88, 8, 48 },
+ { 0x05, 0, 232, 88, 6, 0, 16, 88, 8, 48 },
+ { 0x02, 2, 232, 88, 6, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData01AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData01Amiga), kEoB2FinaleAnimData01Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData02Amiga[4] = {
+ { 0x05, 0, 232, 112, 6, 0, 24, 176, 3, 16 },
+ { 0x05, 0, 232, 112, 6, 0, 27, 176, 3, 16 },
+ { 0x05, 0, 232, 112, 6, 0, 30, 176, 3, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData02AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData02Amiga), kEoB2FinaleAnimData02Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData03Amiga[6] = {
+ { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 },
+ { 0x05, 0, 232, 112, 3, 0, 24, 176, 3, 16 },
+ { 0x02, 3, 80, 8, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 112, 3, 0, 27, 176, 3, 16 },
+ { 0x05, 0, 232, 112, 3, 0, 30, 176, 3, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData03AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData03Amiga), kEoB2FinaleAnimData03Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData04Amiga[8] = {
+ { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 104, 40, 3, 0, 32, 88, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 32, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 24, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 16, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 0, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 24, 88, 8, 88 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData04AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData04Amiga), kEoB2FinaleAnimData04Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData05Amiga[7] = {
+ { 0x05, 0, 232, 112, 0, 0, 24, 176, 3, 16 },
+ { 0x05, 0, 128, 40, 4, 0, 33, 176, 2, 16 },
+ { 0x05, 0, 232, 112, 0, 0, 27, 176, 3, 16 },
+ { 0x05, 0, 128, 40, 4, 0, 35, 176, 2, 16 },
+ { 0x05, 0, 232, 112, 0, 0, 30, 176, 3, 16 },
+ { 0x05, 0, 128, 40, 4, 0, 37, 176, 2, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData05AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData05Amiga), kEoB2FinaleAnimData05Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData06Amiga[2] = {
+ { 0x05, 0, 104, 40, 0, 0, 16, 136, 8, 48 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData06AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData06Amiga), kEoB2FinaleAnimData06Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData07Amiga[6] = {
+ { 0x05, 0, 208, 80, 4, 0, 0, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 6, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 12, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 18, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 24, 128, 6, 56 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData07AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData07Amiga), kEoB2FinaleAnimData07Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData08Amiga[3] = {
+ { 0x05, 0, 224, 56, 3, 0, 0, 184, 4, 16 },
+ { 0x05, 0, 224, 56, 0, 0, 4, 184, 4, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData08AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData08Amiga), kEoB2FinaleAnimData08Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData09Amiga[8] = {
+ { 0x01, 1, -10, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 0, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 10, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 20, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 30, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 40, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 48, 40, 2, 0, 0, 0, 0, 0 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData09AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData09Amiga), kEoB2FinaleAnimData09Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData10Amiga[14] = {
+ { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 32, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 28, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 13, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 },
+ { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData10AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData10Amiga), kEoB2FinaleAnimData10Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData11Amiga[18] = {
+ { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData11AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData11Amiga), kEoB2FinaleAnimData11Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData12Amiga[23] = {
+ { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData12AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData12Amiga), kEoB2FinaleAnimData12Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData13Amiga[23] = {
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData13AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData13Amiga), kEoB2FinaleAnimData13Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData14Amiga[24] = {
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData14AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData14Amiga), kEoB2FinaleAnimData14Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData15Amiga[19] = {
+ { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData15AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData15Amiga), kEoB2FinaleAnimData15Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData16Amiga[13] = {
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 168, 16, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData16AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData16Amiga), kEoB2FinaleAnimData16Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData17Amiga[20] = {
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData17AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData17Amiga), kEoB2FinaleAnimData17Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData18Amiga[28] = {
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 0, 0, 16, 80, 16, 80 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData18AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData18Amiga), kEoB2FinaleAnimData18Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData19Amiga[7] = {
+ { 0x05, 0, 80, 80, 4, 0, 0, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 6, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 12, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 18, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 24, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 30, 128, 6, 56 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData19AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData19Amiga), kEoB2FinaleAnimData19Amiga };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData20Amiga[3] = {
+ { 0x05, 0, 96, 56, 3, 0, 0, 184, 4, 16 },
+ { 0x05, 0, 96, 56, 0, 0, 4, 184, 4, 16 },
+ { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData20AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData20Amiga), kEoB2FinaleAnimData20Amiga };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes00Amiga[4] = {
+ { -1, 16, 0, 11, 48 },
+ { -2, 28, 80, 8, 48 },
+ { -3, 9, 0, 5, 40 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes00AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes00Amiga), kEoB2FinaleShapes00Amiga };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes03Amiga[3] = {
+ { -1, 30, 0, 8, 96 },
+ { -2, 30, 104, 10, 96 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes03AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes03Amiga), kEoB2FinaleShapes03Amiga };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes07Amiga[4] = {
+ { 1, 0, 0, 16, 72 },
+ { 2, 16, 0, 16, 72 },
+ { 3, 0, 72, 16, 72 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes07AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes07Amiga), kEoB2FinaleShapes07Amiga };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes09Amiga[9] = {
+ { 0, 0, 0, 32, 16 },
+ { 2, 0, 36, 35, 41 },
+ { 3, 0, 77, 24, 17 },
+ { 4, 0, 94, 15, 33 },
+ { 5, 24, 77, 10, 17 },
+ { 6, 16, 99, 23, 69 },
+ { -10, 0, 136, 8, 64 },
+ { -11, 8, 136, 8, 64 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes09AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes09Amiga), kEoB2FinaleShapes09Amiga };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes10Amiga[4] = {
+ { 1, 0, 0, 40, 30 },
+ { 15, 9, 37, 21, 48 },
+ { 16, 16, 88, 6, 56 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes10AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes10Amiga), kEoB2FinaleShapes10Amiga };
+
+static const byte kEoB2NpcShapeDataAmiga[24] = {
+ 0x00, 0x00, 0x00, 0x05, 0x39, 0x00, 0x00, 0xff,
+ 0x00, 0x00, 0x64, 0x05, 0x4f, 0x00, 0x00, 0xff,
+ 0x00, 0x00, 0x39, 0x06, 0x2b, 0x00, 0x00, 0xff
+};
+
+static const ByteProvider kEoB2NpcShapeDataAmigaProvider = { ARRAYSIZE(kEoB2NpcShapeDataAmiga), kEoB2NpcShapeDataAmiga };
+
+static const byte kEoB2ClassModifierFlagsAmiga[15] = {
+ 0x01, 0x20, 0x10, 0x02, 0x04, 0x08, 0x05, 0x09,
+ 0x03, 0x0B, 0x0A, 0x0C, 0x07, 0x05, 0x06
+};
+
+static const ByteProvider kEoB2ClassModifierFlagsAmigaProvider = { ARRAYSIZE(kEoB2ClassModifierFlagsAmiga), kEoB2ClassModifierFlagsAmiga };
+
+static const byte kEoB2MonsterStepTable02Amiga[8] = {
+ 0xE0, 0xE1, 0x01, 0x21, 0x20, 0x1F, 0xFF, 0xDF
+};
+
+static const ByteProvider kEoB2MonsterStepTable02AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable02Amiga), kEoB2MonsterStepTable02Amiga };
+
+static const byte kEoB2MonsterStepTable1Amiga[16] = {
+ 0x01, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00,
+ 0x00, 0x00, 0xFF, 0x20, 0xFF, 0x00, 0x00, 0xE0
+};
+
+static const ByteProvider kEoB2MonsterStepTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable1Amiga), kEoB2MonsterStepTable1Amiga };
+
+static const byte kEoB2MonsterStepTable2Amiga[8] = {
+ 0x07, 0xFA, 0x05, 0xFC, 0x03, 0xFE, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2MonsterStepTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable2Amiga), kEoB2MonsterStepTable2Amiga };
+
+static const byte kEoB2MonsterStepTable3Amiga[8] = {
+ 0xF9, 0x06, 0xFB, 0x04, 0xFD, 0x02, 0xFF, 0x00
+};
+
+static const ByteProvider kEoB2MonsterStepTable3AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable3Amiga), kEoB2MonsterStepTable3Amiga };
+
+static const byte kEoB2MonsterCloseAttPosTable1Amiga[4] = {
+ 0x00, 0x01, 0x03, 0x02
+};
+
+static const ByteProvider kEoB2MonsterCloseAttPosTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable1Amiga), kEoB2MonsterCloseAttPosTable1Amiga };
+
+static const byte kEoB2MonsterCloseAttPosTable22Amiga[16] = {
+ 0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x01, 0x03,
+ 0x00, 0x01, 0x02, 0x03, 0x03, 0x01, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttPosTable22AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable22Amiga), kEoB2MonsterCloseAttPosTable22Amiga };
+
+static const byte kEoB2MonsterCloseAttUnkTableAmiga[10] = {
+ 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttUnkTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttUnkTableAmiga), kEoB2MonsterCloseAttUnkTableAmiga };
+
+static const byte kEoB2MonsterCloseAttChkTable1Amiga[16] = {
+ 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttChkTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable1Amiga), kEoB2MonsterCloseAttChkTable1Amiga };
+
+static const byte kEoB2MonsterCloseAttChkTable2Amiga[16] = {
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttChkTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable2Amiga), kEoB2MonsterCloseAttChkTable2Amiga };
+
+static const byte kEoB2MonsterCloseAttDstTable1Amiga[16] = {
+ 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00,
+ 0x00, 0x01, 0x02, 0x03, 0x03, 0x00, 0x01, 0x02
+};
+
+static const ByteProvider kEoB2MonsterCloseAttDstTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable1Amiga), kEoB2MonsterCloseAttDstTable1Amiga };
+
+static const byte kEoB2MonsterCloseAttDstTable2Amiga[48] = {
+ 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x00, 0x01,
+ 0x02, 0x03, 0x04, 0x05, 0x05, 0x03, 0x01, 0x04,
+ 0x02, 0x00, 0x01, 0x03, 0x05, 0x00, 0x02, 0x04,
+ 0x04, 0x05, 0x02, 0x03, 0x00, 0x01, 0x05, 0x04,
+ 0x03, 0x02, 0x01, 0x00, 0x00, 0x02, 0x04, 0x01,
+ 0x03, 0x05, 0x04, 0x02, 0x00, 0x05, 0x03, 0x01
+};
+
+static const ByteProvider kEoB2MonsterCloseAttDstTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable2Amiga), kEoB2MonsterCloseAttDstTable2Amiga };
+
+static const byte kEoB2MonsterProximityTableAmiga[32] = {
+ 0x02, 0x03, 0x00, 0x01, 0x03, 0x02, 0x01, 0x00,
+ 0x00, 0x02, 0x01, 0x03, 0x02, 0x00, 0x03, 0x01,
+ 0x01, 0x00, 0x03, 0x02, 0x00, 0x01, 0x02, 0x03,
+ 0x03, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2MonsterProximityTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterProximityTableAmiga), kEoB2MonsterProximityTableAmiga };
+
+static const byte kEoB2FindBlockMonstersTableAmiga[64] = {
+ 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02,
+ 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00,
+ 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02,
+ 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00,
+ 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02,
+ 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00,
+ 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02,
+ 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2FindBlockMonstersTableAmigaProvider = { ARRAYSIZE(kEoB2FindBlockMonstersTableAmiga), kEoB2FindBlockMonstersTableAmiga };
+
+static const byte kEoB2MonsterDirChangeTableAmiga[16] = {
+ 0xff, 0x06, 0x02, 0xff, 0x00, 0x07, 0x01, 0xff,
+ 0x04, 0x05, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+static const ByteProvider kEoB2MonsterDirChangeTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterDirChangeTableAmiga), kEoB2MonsterDirChangeTableAmiga };
+
+static const uint16 kEoB2EncodeMonsterDefsAmiga[72] = {
+ 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0028, 0x000c, 0x0038,
+ 0x0013, 0x0028, 0x000c, 0x0038, 0x001f, 0x0000, 0x0007, 0x0060,
+ 0x0000, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060,
+ 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0000, 0x0007, 0x0060,
+ 0x000e, 0x0000, 0x0007, 0x0060, 0x0015, 0x0000, 0x0007, 0x0060,
+ 0x001c, 0x0000, 0x0007, 0x0060, 0x0000, 0x0060, 0x0007, 0x0060,
+ 0x0000, 0x0000, 0x000a, 0x0058, 0x000a, 0x0000, 0x000a, 0x0058,
+ 0x0014, 0x0000, 0x000a, 0x0058, 0x001e, 0x0000, 0x000a, 0x0058,
+ 0x0000, 0x0058, 0x000a, 0x0058, 0x000a, 0x0058, 0x000a, 0x0058
+};
+
+static const Uint16Provider kEoB2EncodeMonsterDefsAmigaProvider = { ARRAYSIZE(kEoB2EncodeMonsterDefsAmiga), kEoB2EncodeMonsterDefsAmiga };
+
+static const EoBCharacter kEoB2NpcPresetsAmiga[6] = {
+ { 0x00, 0x01, "Insal",
+ 15, 15, 0, 0, 13, 13, 11, 11, 17, 17, 16, 16, 9, 9,
+ 3, 39, 10, 0, 10, 5, 5, -1, 8, { 6, 0, 0 },
+ { 0x00006ADA, 0x00000000, 0x00000000 }, 0x00000000,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "Calandra",
+ 18, 18, 36, 36, 13, 13, 8, 8, 15, 15, 16, 16, 14, 14,
+ 4, 76, 10, 0, 1, 0, 2, -2, 12, { 9, 0, 0 },
+ { 0x0003DF35, 0x00000000, 0x00000000 }, 0x00000000,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "Shorn",
+ 15, 15, 0, 0, 14, 14, 13, 13, 14, 14, 13, 13, 16, 16,
+ 40, 40, 10, 0, 6, 4, 3, -3, 100, { 8, 0, 0 },
+ { 0x00021730, 0x00000000, 0x00000000 }, 0x00000000,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "San-raal",
+ 11, 11, 0, 0, 18, 18, 13, 13, 14, 14, 16, 16, 9, 9,
+ 28, 28, 10, 0, 2, 3, 5, -4, 100, { 8, 0, 0 },
+ { 0x00017AF0, 0x00000000, 0x00000000 }, 0x096B4566,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "Tanglor",
+ 16, 16, 0, 0, 13, 13, 16, 16, 15, 15, 11, 11, 12, 12,
+ 53, 53, 9, 0, 4, 6, 1, -5, 100, { 7, 7, 0 },
+ { 0x00010FC2, 0x00010FC2, 0x00000000 }, 0xFFFFFFFF,
+ { 0x0004, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "Amber",
+ 14, 14, 0, 0, 17, 17, 12, 12, 18, 18, 9, 9, 17, 17,
+ 36, 36, 10, 0, 3, 10, 1, -6, 100, { 7, 7, 0 },
+ { 0x0000FAE6, 0x0000FAE6, 0x00000000 }, 0x00294566,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } }
+};
+
+static const EoBCharacterProvider kEoB2NpcPresetsAmigaProvider = { ARRAYSIZE(kEoB2NpcPresetsAmiga), kEoB2NpcPresetsAmiga };
+
+static const byte kEoB2DreamStepsAmiga[14] = {
+ 0x01, 0x02, 0x03, 0x02, 0x01, 0x00, 0x01, 0x02,
+ 0x03, 0x03, 0x02, 0x01, 0x00, 0xFF
+};
+
+static const ByteProvider kEoB2DreamStepsAmigaProvider = { ARRAYSIZE(kEoB2DreamStepsAmiga), kEoB2DreamStepsAmiga };
+
+static const byte kEoB2HornSoundsAmiga[4] = {
+ 0x40, 0x41, 0x42, 0x43
+};
+
+static const ByteProvider kEoB2HornSoundsAmigaProvider = { ARRAYSIZE(kEoB2HornSoundsAmiga), kEoB2HornSoundsAmiga };
+
+static const uint16 kEoB2WallOfForceDsXAmiga[18] = {
+ 0xFFCC, 0xFFF4, 0x001C, 0x0044, 0x006C, 0x0094, 0x00BC, 0xFFB8,
+ 0xFFF8, 0x0038, 0x0078, 0x00B8, 0xFFC8, 0x0028, 0x0088, 0x0000,
+ 0x0000, 0x0000
+};
+
+static const Uint16Provider kEoB2WallOfForceDsXAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceDsXAmiga), kEoB2WallOfForceDsXAmiga };
+
+static const byte kEoB2WallOfForceDsYAmiga[3] = {
+ 0x20, 0x18, 0x10
+};
+
+static const ByteProvider kEoB2WallOfForceDsYAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceDsYAmiga), kEoB2WallOfForceDsYAmiga };
+
+static const byte kEoB2WallOfForceNumWAmiga[3] = {
+ 0x01, 0x02, 0x03
+};
+
+static const ByteProvider kEoB2WallOfForceNumWAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceNumWAmiga), kEoB2WallOfForceNumWAmiga };
+
+static const byte kEoB2WallOfForceNumHAmiga[3] = {
+ 0x02, 0x06, 0x09
+};
+
+static const ByteProvider kEoB2WallOfForceNumHAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceNumHAmiga), kEoB2WallOfForceNumHAmiga };
+
+static const byte kEoB2WallOfForceShpIdAmiga[3] = {
+ 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2WallOfForceShpIdAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceShpIdAmiga), kEoB2WallOfForceShpIdAmiga };
+
+static const byte kEoB2DscShapeIndexAmiga[36] = {
+ 0x01, 0x01, 0x04, 0x0A, 0x04, 0x08, 0x04, 0x01,
+ 0x04, 0xF8, 0x04, 0xF6, 0x00, 0x00, 0x03, 0x09,
+ 0x03, 0x07, 0x03, 0x01, 0x03, 0xF9, 0x03, 0xF7,
+ 0x02, 0x06, 0x02, 0x01, 0x02, 0xFA, 0x01, 0x05,
+ 0x01, 0x01, 0x01, 0xFB
+};
+
+static const ByteProvider kEoB2DscShapeIndexAmigaProvider = { ARRAYSIZE(kEoB2DscShapeIndexAmiga), kEoB2DscShapeIndexAmiga };
+
+static const uint16 kEoB2DscXAmiga[18] = {
+ 0xFF70, 0xFFA0, 0xFFD0, 0x0000, 0x0030, 0x0060, 0x0090, 0xFF60,
+ 0xFFB0, 0x0000, 0x0050, 0x00A0, 0xFF80, 0x0000, 0x0080, 0x0000,
+ 0x0000, 0x0000
+};
+
+static const Uint16Provider kEoB2DscXAmigaProvider = { ARRAYSIZE(kEoB2DscXAmiga), kEoB2DscXAmiga };
+
+static const byte kEoB2DscTileIndexAmiga[18] = {
+ 0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07,
+ 0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F,
+ 0x11, 0x10
+};
+
+static const ByteProvider kEoB2DscTileIndexAmigaProvider = { ARRAYSIZE(kEoB2DscTileIndexAmiga), kEoB2DscTileIndexAmiga };
+
+static const byte kEoB2DscDimData1Amiga[324] = {
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
+ 0xd8, 0xd7, 0xd8, 0xd8, 0x02, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xfe, 0xd7, 0xd8, 0xd8, 0xd8, 0xd7, 0x03,
+ 0xd8, 0xfd, 0xd8, 0xd8, 0xd8, 0xfe, 0xd8, 0x08,
+ 0xd8, 0xd8, 0xd8, 0xfe, 0xd7, 0x06, 0xd8, 0xd8,
+ 0xfa, 0x03, 0xd8, 0xfd, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xfa, 0xd7,
+ 0x10, 0xd8, 0xfd, 0xd7, 0x13, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xf2, 0xd8, 0x14, 0xd8, 0xd8,
+ 0xd8, 0xf0, 0xd7, 0x14, 0xd8, 0xed, 0x10, 0xd8,
+ 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8, 0xec, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd7, 0x14, 0xd8, 0xed,
+ 0xd7, 0xd8, 0xd8, 0x13, 0xd7, 0xd7, 0xd7, 0xd7,
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7, 0xd7, 0xd7,
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0x06, 0xd8, 0xd8, 0xfa, 0x03, 0xd8, 0xfd,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xfa, 0xd8, 0x10, 0xd8, 0xfd, 0xd7,
+ 0x13, 0xfd, 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xf0, 0xd8, 0xd8,
+ 0xd8, 0xed, 0x10, 0xd8, 0xd8, 0x13, 0xd7, 0xd7,
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
+ 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x03, 0xd8, 0xfd,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xfd, 0xd8,
+ 0x13, 0xfd, 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xed, 0xd8, 0xd8, 0xd8, 0x13, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
+ 0xd8, 0xd8, 0xd8, 0xd8
+};
+
+static const ByteProvider kEoB2DscDimData1AmigaProvider = { ARRAYSIZE(kEoB2DscDimData1Amiga), kEoB2DscDimData1Amiga };
+
+static const byte kEoB2DscDimData2Amiga[648] = {
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x00, 0x16, 0x16, 0x00, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x02, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x02, 0x16, 0x00, 0x04, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x16, 0x00, 0x00, 0x03,
+ 0x00, 0x16, 0x03, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x02, 0x16, 0x00, 0x16, 0x00, 0x08,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x02,
+ 0x16, 0x00, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
+ 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x00,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x08, 0x0e,
+ 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x06, 0x10,
+ 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x0e, 0x16,
+ 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x10, 0x16, 0x16, 0x00, 0x00, 0x14,
+ 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x14, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x12, 0x16, 0x14, 0x16, 0x00, 0x16, 0x13, 0x16,
+ 0x16, 0x00, 0x00, 0x16, 0x00, 0x16, 0x00, 0x13,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x00, 0x16, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
+ 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x00, 0x16,
+ 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x07, 0x0f,
+ 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x10, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x13, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x03, 0x16, 0x00, 0x16,
+ 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x13, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16
+};
+
+static const ByteProvider kEoB2DscDimData2AmigaProvider = { ARRAYSIZE(kEoB2DscDimData2Amiga), kEoB2DscDimData2Amiga };
+
+static const byte kEoB2DscBlockMapAmiga[12] = {
+ 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00,
+ 0x03, 0x00, 0x01, 0x02
+};
+
+static const ByteProvider kEoB2DscBlockMapAmigaProvider = { ARRAYSIZE(kEoB2DscBlockMapAmiga), kEoB2DscBlockMapAmiga };
+
+static const byte kEoB2DscDimMapAmiga[18] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03,
+ 0x03, 0x03
+};
+
+static const ByteProvider kEoB2DscDimMapAmigaProvider = { ARRAYSIZE(kEoB2DscDimMapAmiga), kEoB2DscDimMapAmiga };
+
+static const byte kEoB2DscBlockIndexAmiga[72] = {
+ 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xbe,
+ 0xbf, 0xc0, 0xc1, 0xc2, 0xdf, 0xe0, 0xe1, 0xff,
+ 0x00, 0x01, 0xa3, 0xc3, 0xe3, 0x03, 0x23, 0x43,
+ 0x63, 0xc2, 0xe2, 0x02, 0x22, 0x42, 0xe1, 0x01,
+ 0x21, 0xe0, 0x00, 0x20, 0x63, 0x62, 0x61, 0x60,
+ 0x5f, 0x5e, 0x5d, 0x42, 0x41, 0x40, 0x3f, 0x3e,
+ 0x21, 0x20, 0x1f, 0x01, 0x00, 0xff, 0x5d, 0x3d,
+ 0x1d, 0xfd, 0xdd, 0xbd, 0x9d, 0x3e, 0x1e, 0xfe,
+ 0xde, 0xbe, 0x1f, 0xff, 0xdf, 0x20, 0x00, 0xe0
+};
+
+static const ByteProvider kEoB2DscBlockIndexAmigaProvider = { ARRAYSIZE(kEoB2DscBlockIndexAmiga), kEoB2DscBlockIndexAmiga };
+
+static const char *const kEoB2SoundMapAmiga[120] = {
+ "",
+ "button",
+ "",
+ "door",
+ "door",
+ "slam",
+ "button",
+ "button",
+ "",
+ "eat",
+ "magica",
+ "throw",
+ "plate",
+ "passage",
+ "unlock",
+ "teleport",
+ "undead",
+ "pit",
+ "itemland",
+ "",
+ "",
+ "playhit",
+ "death",
+ "text",
+ "electric",
+ "transmute",
+ "dart",
+ "",
+ "",
+ "bump",
+ "",
+ "electric",
+ "playswing",
+ "",
+ "panel",
+ "explode",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "magicb",
+ "magicb",
+ "magicb",
+ "magicb",
+ "magicb",
+ "magicb",
+ "magicb",
+ "magicb",
+ "button",
+ "",
+ "drop",
+ "text",
+ "magicb",
+ "lock",
+ "",
+ "magicb",
+ "magicb",
+ "Missile",
+ "",
+ "burnhands",
+ "electric",
+ "fireball",
+ "",
+ "magica",
+ "magica",
+ "magica",
+ "magicb",
+ "magicb",
+ "acid",
+ "magicb",
+ "fireball",
+ "acid",
+ "magica",
+ "magicb",
+ "magicb",
+ "undead",
+ "magica",
+ "magica",
+ "magica",
+ "magicb",
+ "cause",
+ "magicb",
+ "magicb",
+ "magica",
+ "magicb",
+ "magica",
+ "magica",
+ "magica",
+ "magica",
+ "cause",
+ "fireball",
+ "magica"
+};
+
+static const StringListProvider kEoB2SoundMapAmigaProvider = { ARRAYSIZE(kEoB2SoundMapAmiga), kEoB2SoundMapAmiga };
+
+static const char *const kEoB2SoundMapExtraAmiga[63] = {
+ "",
+ "2Guards",
+ "Calandra",
+ "Dream",
+ "Dwarf",
+ "GrdInsal",
+ "Insal",
+ "x",
+ "Kheban",
+ "",
+ "OldLady",
+ "MagicMth",
+ "Castle1",
+ "BdrTrick",
+ "",
+ "2Cleric",
+ "Calandra",
+ "1Cleric",
+ "MagicMth",
+ "MagicMth",
+ "2Clerics",
+ "4WindDr",
+ "x",
+ "BloodDr",
+ "",
+ "Beholder",
+ "BdrTrick",
+ "MagicMth",
+ "DranSilv",
+ "MagicMth",
+ "1Cleric",
+ "Mantis2",
+ "Priest",
+ "Kheban",
+ "Tanglor1",
+ "Tanglor2",
+ "",
+ "MagicMth",
+ "MagicMth",
+ "Dran1Azr",
+ "x",
+ "x",
+ "FrostGt",
+ "FrostDed",
+ "Dran2Azr",
+ "Dran3Azr",
+ "BdrTrick",
+ "x",
+ "MagicMth",
+ "",
+ "Dran1Crm",
+ "Dran2Crm",
+ "Dran3Crm",
+ "Dran4Crm",
+ "DranDrag",
+ "EndTheme",
+ "DyingMan",
+ "Insal",
+ "Ojel",
+ "StoneGt",
+ "Implode",
+ "x",
+ ""
+};
+
+static const StringListProvider kEoB2SoundMapExtraAmigaProvider = { ARRAYSIZE(kEoB2SoundMapExtraAmiga), kEoB2SoundMapExtraAmiga };
+
+static const byte kEoB2SoundIndex1Amiga[98] = {
+ 0xff, 0x01, 0xfd, 0x07, 0xfd, 0x04, 0xfe, 0x0a,
+ 0xfe, 0xff, 0x01, 0xfd, 0x07, 0x08, 0xff, 0x03,
+ 0x05, 0x09, 0x0b, 0x04, 0xfe, 0x0a, 0xfe, 0xff,
+ 0x00, 0xfd, 0x0c, 0xfd, 0xff, 0x01, 0xfd, 0x0d,
+ 0xfd, 0xff, 0x01, 0xfd, 0x08, 0xfd, 0xff, 0x06,
+ 0xfe, 0x07, 0xfe, 0x05, 0xfe, 0x0e, 0xfe, 0xff,
+ 0x05, 0xfe, 0x0f, 0xfe, 0xff, 0xfe, 0xfe, 0x0d,
+ 0xfe, 0xff, 0xff, 0x00, 0xfd, 0x0d, 0x0c, 0x00,
+ 0xfe, 0x0b, 0xfe, 0xff, 0x00, 0xfe, 0x0b, 0xfe,
+ 0xff, 0xfe, 0x01, 0x0b, 0x0d, 0xff, 0x02, 0xfd,
+ 0x10, 0xfd, 0xff, 0x00, 0x01, 0x11, 0xfe, 0xff,
+ 0x00, 0x01, 0x0e, 0x12, 0x02, 0x01, 0x11, 0xfe,
+ 0xff, 0x00
+};
+
+static const ByteProvider kEoB2SoundIndex1AmigaProvider = { ARRAYSIZE(kEoB2SoundIndex1Amiga), kEoB2SoundIndex1Amiga };
+
+static const byte kEoB2SoundIndex2Amiga[17] = {
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x03,
+ 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05,
+ 0x05
+};
+
+static const ByteProvider kEoB2SoundIndex2AmigaProvider = { ARRAYSIZE(kEoB2SoundIndex2Amiga), kEoB2SoundIndex2Amiga };
+
+static const char *const kEoB2SoundFilesIngame2Amiga[6] = {
+ "DUNG.OUT",
+ "FOREST.OUT",
+ "MEZZ.OUT",
+ "SILVER.OUT",
+ "AZURE.OUT",
+ "CRIMSON.OUT"
+};
+
+static const StringListProvider kEoB2SoundFilesIngame2AmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIngame2Amiga), kEoB2SoundFilesIngame2Amiga };
+
+static const char *const kEoB2LevelSoundFiles1Amiga[19] = {
+ "Move",
+ "Move2",
+ "Move3",
+ "LeechMov",
+ "SpiderMov",
+ "Flap",
+ "MantisMov",
+ "Blade",
+ "FlindAtk",
+ "Rustatk",
+ "SloshSuck",
+ "Claw",
+ "BeastAtk",
+ "Magick",
+ "Spear",
+ "Growl",
+ "Punch",
+ "HoundAtk",
+ "FlayerAtk"
+};
+
+static const StringListProvider kEoB2LevelSoundFiles1AmigaProvider = { ARRAYSIZE(kEoB2LevelSoundFiles1Amiga), kEoB2LevelSoundFiles1Amiga };
+
+static const char *const kEoB2LevelSoundFiles2Amiga[19] = {
+ "Walk1m",
+ "Walk2m",
+ "Walk3m",
+ "Leechm",
+ "Spiderm",
+ "Flapm",
+ "Mantism",
+ "Blade",
+ "Flind",
+ "Rust",
+ "Slosh",
+ "Claw",
+ "Beast",
+ "Magick",
+ "Spear",
+ "Growl",
+ "Punch",
+ "Hound",
+ "Flayer"
+};
+
+static const StringListProvider kEoB2LevelSoundFiles2AmigaProvider = { ARRAYSIZE(kEoB2LevelSoundFiles2Amiga), kEoB2LevelSoundFiles2Amiga };
+
+static const char *const kEoB2SoundFilesIntroAmiga[10] = {
+ "TELEPORT.CPS",
+ "BIGPIPE3A.CPS",
+ "PANFLUTE5.CPS",
+ "OUTTAKES1.CPS",
+ "OUTTAKES2.CPS",
+ "FIN.SAM",
+ "INTRO.SAM",
+ "FLUTE3C.CPS",
+ "CHARGEN2.CPS",
+ "CHARGEN3.CPS"
+};
+
+static const StringListProvider kEoB2SoundFilesIntroAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIntroAmiga), kEoB2SoundFilesIntroAmiga };
+
+static const char *const kEoB2SoundFilesIngameAmiga[7] = {
+ "OUTTAKES1.CPS",
+ "OUTTAKES2.CPS",
+ "SFX1.CPS",
+ "SFX2.CPS",
+ "SFX3.CPS",
+ "SFX4.CPS",
+ "OUTTAKES3.CPS"
+};
+
+static const StringListProvider kEoB2SoundFilesIngameAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIngameAmiga), kEoB2SoundFilesIngameAmiga };
+
+static const char *const kEoB2SoundFilesFinaleAmiga[5] = {
+ "BIGPIPE3A.CPS",
+ "OUTTAKES1.CPS",
+ "OUTTAKES2.CPS",
+ "FIN.SAM",
+ "FINALE.SAM"
+};
+
+static const StringListProvider kEoB2SoundFilesFinaleAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesFinaleAmiga), kEoB2SoundFilesFinaleAmiga };
+
+static const byte kEoB2MonsterSoundPatchDataAmiga[60] = {
+ 0x61, 0x27, 0x24, 0x22, 0x27, 0x25, 0x32, 0x27, 0x25,
+ 0x87, 0x27, 0x25, 0xa7, 0x27, 0x25, 0x97, 0x27, 0x25,
+ 0xb7, 0x27, 0x25, 0x08, 0x27, 0x25, 0x28, 0x27, 0x25,
+ 0x48, 0x27, 0x25, 0x68, 0x27, 0x25, 0x0a, 0x27, 0x25,
+ 0x1a, 0x27, 0x25, 0x0c, 0x27, 0x25, 0x4e, 0x27, 0x25,
+ 0x6e, 0x27, 0x25, 0x8e, 0x27, 0x25, 0xae, 0x27, 0x25,
+ 0x0f, 0x27, 0x25, 0x1f, 0x27, 0x25
+};
+
+static const ByteProvider kEoB2MonsterSoundPatchDataAmigaProvider = { ARRAYSIZE(kEoB2MonsterSoundPatchDataAmiga), kEoB2MonsterSoundPatchDataAmiga };
diff --git a/devtools/create_kyradat/resources/eob2_amiga_english.h b/devtools/create_kyradat/resources/eob2_amiga_english.h
new file mode 100644
index 0000000000..12c6e6189b
--- /dev/null
+++ b/devtools/create_kyradat/resources/eob2_amiga_english.h
@@ -0,0 +1,1055 @@
+static const char *const kEoB2ChargenStrings1AmigaEnglish[9] = {
+ "Your party is\rcomplete. Select\rthe PLAY button\ror press 'P' to\rstart the game.",
+ " ",
+ "AC\rHP\rLVL",
+ "%s\r%d\r%d\r%d\r%d\r%d",
+ "%d\r%d",
+ "%d",
+ "%d/%d",
+ "%d/%d/%d",
+ "Select the box of\rthe character you\rwish to create or\rview."
+};
+
+static const StringListProvider kEoB2ChargenStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenStrings1AmigaEnglish), kEoB2ChargenStrings1AmigaEnglish };
+
+static const char *const kEoB2ChargenStrings2AmigaEnglish[12] = {
+ "%s",
+ "%d",
+ "%s",
+ "%d",
+ "%d",
+ "%d",
+ "%s",
+ "%d",
+ "SELECT RACE:",
+ "SELECT CLASS:",
+ "SELECT ALIGNMENT:",
+ "Name:"
+};
+
+static const StringListProvider kEoB2ChargenStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenStrings2AmigaEnglish), kEoB2ChargenStrings2AmigaEnglish };
+
+static const char *const kEoB2ChargenStatStringsAmigaEnglish[12] = {
+ "STR",
+ "INT",
+ "WIS",
+ "DEX",
+ "CON",
+ "CHA",
+ "STRENGTH",
+ "INTELLIGENCE",
+ "WISDOM",
+ "DEXTERITY",
+ "CONSTITUTION",
+ "CHARISMA"
+};
+
+static const StringListProvider kEoB2ChargenStatStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenStatStringsAmigaEnglish), kEoB2ChargenStatStringsAmigaEnglish };
+
+static const char *const kEoB2ChargenRaceSexStringsAmigaEnglish[12] = {
+ "HUMAN MALE",
+ "HUMAN FEMALE",
+ "ELF MALE",
+ "ELF FEMALE",
+ "HALF-ELF MALE",
+ "HALF-ELF FEMALE",
+ "DWARF MALE",
+ "DWARF FEMALE",
+ "GNOME MALE",
+ "GNOME FEMALE",
+ "HALFLING MALE",
+ "HALFLING FEMALE"
+};
+
+static const StringListProvider kEoB2ChargenRaceSexStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenRaceSexStringsAmigaEnglish), kEoB2ChargenRaceSexStringsAmigaEnglish };
+
+static const char *const kEoB2ChargenClassStringsAmigaEnglish[21] = {
+ "FIGHTER",
+ "RANGER",
+ "PALADIN",
+ "MAGE",
+ "CLERIC",
+ "THIEF",
+ "FIGHTER/CLERIC",
+ "FIGHTER/THIEF",
+ "FIGHTER/MAGE",
+ "FIGHTER/MAGE/THIEF",
+ "THIEF/MAGE",
+ "CLERIC/THIEF",
+ "FIGHTER/CLERIC/MAGE",
+ "RANGER/CLERIC",
+ "CLERIC/MAGE",
+ "FIGHTER",
+ "MAGE",
+ "CLERIC",
+ "THIEF",
+ "PALADIN",
+ "RANGER"
+};
+
+static const StringListProvider kEoB2ChargenClassStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenClassStringsAmigaEnglish), kEoB2ChargenClassStringsAmigaEnglish };
+
+static const char *const kEoB2ChargenAlignmentStringsAmigaEnglish[9] = {
+ "LAWFUL GOOD",
+ "NEUTRAL GOOD",
+ "CHAOTIC GOOD",
+ "LAWFUL NEUTRAL",
+ "TRUE NEUTRAL",
+ "CHAOTIC NEUTRAL",
+ "LAWFUL EVIL",
+ "NEUTRAL EVIL",
+ "CHAOTIC EVIL"
+};
+
+static const StringListProvider kEoB2ChargenAlignmentStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenAlignmentStringsAmigaEnglish), kEoB2ChargenAlignmentStringsAmigaEnglish };
+
+static const char *const kEoB2ChargenEnterGameStringsAmigaEnglish[1] = {
+ " Entering game.\r Please wait."
+};
+
+static const StringListProvider kEoB2ChargenEnterGameStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenEnterGameStringsAmigaEnglish), kEoB2ChargenEnterGameStringsAmigaEnglish };
+
+static const char *const kEoB2PryDoorStringsAmigaEnglish[8] = {
+ "\r",
+ "You are not capable of forcing the door.\r",
+ "\x06\x04""You force the door.\r",
+ "\x06\x06""You try to force the door but fail.\r",
+ "You can't put that item there.\r",
+ "The item is too large to fit.\r",
+ "No one is able to pry this door open.\r",
+ "\r"
+};
+
+static const StringListProvider kEoB2PryDoorStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2PryDoorStringsAmigaEnglish), kEoB2PryDoorStringsAmigaEnglish };
+
+static const char *const kEoB2WarningStringsAmigaEnglish[4] = {
+ "You can't go that way.\r",
+ "%s isn't capable of eating food!\r",
+ "That food is rotten! You don't want to eat that!\r",
+ "You may only eat food!\r"
+};
+
+static const StringListProvider kEoB2WarningStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2WarningStringsAmigaEnglish), kEoB2WarningStringsAmigaEnglish };
+
+static const char *const kEoB2ItemSuffixStringsRingsAmigaEnglish[4] = {
+ "Adornment",
+ "Wizardry",
+ "Sustenance",
+ "Feather Fall"
+};
+
+static const StringListProvider kEoB2ItemSuffixStringsRingsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsRingsAmigaEnglish), kEoB2ItemSuffixStringsRingsAmigaEnglish };
+
+static const char *const kEoB2ItemSuffixStringsPotionsAmigaEnglish[8] = {
+ "Giant Strength",
+ "Healing",
+ "Extra Healing",
+ "Poison",
+ "Vitality",
+ "Speed",
+ "Invisibility",
+ "Cure Poison"
+};
+
+static const StringListProvider kEoB2ItemSuffixStringsPotionsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsPotionsAmigaEnglish), kEoB2ItemSuffixStringsPotionsAmigaEnglish };
+
+static const char *const kEoB2ItemSuffixStringsWandsAmigaEnglish[8] = {
+ "Stick",
+ "Lightning",
+ "Frost",
+ "Curing",
+ "Fireball",
+ "Starfire",
+ "Magic Missile",
+ "Dispel Magic"
+};
+
+static const StringListProvider kEoB2ItemSuffixStringsWandsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsWandsAmigaEnglish), kEoB2ItemSuffixStringsWandsAmigaEnglish };
+
+static const char *const kEoB2RipItemStringsAmigaEnglish[3] = {
+ "%s has lost her ",
+ "%s has lost his ",
+ ".\r"
+};
+
+static const StringListProvider kEoB2RipItemStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2RipItemStringsAmigaEnglish), kEoB2RipItemStringsAmigaEnglish };
+
+static const char *const kEoB2CursedStringAmigaEnglish[1] = {
+ "%d Cursed %s"
+};
+
+static const StringListProvider kEoB2CursedStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2CursedStringAmigaEnglish), kEoB2CursedStringAmigaEnglish };
+
+static const char *const kEoB2MagicObjectStringsAmigaEnglish[5] = {
+ "Mage Scroll",
+ "Cleric Scroll",
+ "Ring",
+ "Potion",
+ "Wand"
+};
+
+static const StringListProvider kEoB2MagicObjectStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicObjectStringsAmigaEnglish), kEoB2MagicObjectStringsAmigaEnglish };
+
+static const char *const kEoB2MagicObjectString5AmigaEnglish[1] = {
+ "Stick"
+};
+
+static const StringListProvider kEoB2MagicObjectString5AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicObjectString5AmigaEnglish), kEoB2MagicObjectString5AmigaEnglish };
+
+static const char *const kEoB2PatternSuffixAmigaEnglish[1] = {
+ "%s of %s"
+};
+
+static const StringListProvider kEoB2PatternSuffixAmigaEnglishProvider = { ARRAYSIZE(kEoB2PatternSuffixAmigaEnglish), kEoB2PatternSuffixAmigaEnglish };
+
+static const char *const kEoB2PatternGrFix1AmigaEnglish[1] = {
+ "%s of %s"
+};
+
+static const StringListProvider kEoB2PatternGrFix1AmigaEnglishProvider = { ARRAYSIZE(kEoB2PatternGrFix1AmigaEnglish), kEoB2PatternGrFix1AmigaEnglish };
+
+static const char *const kEoB2PatternGrFix2AmigaEnglish[1] = {
+ "%s of %s"
+};
+
+static const StringListProvider kEoB2PatternGrFix2AmigaEnglishProvider = { ARRAYSIZE(kEoB2PatternGrFix2AmigaEnglish), kEoB2PatternGrFix2AmigaEnglish };
+
+static const char *const kEoB2ValidateArmorStringAmigaEnglish[1] = {
+ "%s can't wear that type of armor.\r"
+};
+
+static const StringListProvider kEoB2ValidateArmorStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2ValidateArmorStringAmigaEnglish), kEoB2ValidateArmorStringAmigaEnglish };
+
+static const char *const kEoB2ValidateCursedStringAmigaEnglish[1] = {
+ "%s cannot release the weapon! It is cursed!\r"
+};
+
+static const StringListProvider kEoB2ValidateCursedStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2ValidateCursedStringAmigaEnglish), kEoB2ValidateCursedStringAmigaEnglish };
+
+static const char *const kEoB2ValidateNoDropStringAmigaEnglish[1] = {
+ "You can't put that item there.\r"
+};
+
+static const StringListProvider kEoB2ValidateNoDropStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2ValidateNoDropStringAmigaEnglish), kEoB2ValidateNoDropStringAmigaEnglish };
+
+static const char *const kEoB2PotionStringsAmigaEnglish[2] = {
+ "poisoned",
+ "%s feels %s!\r"
+};
+
+static const StringListProvider kEoB2PotionStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2PotionStringsAmigaEnglish), kEoB2PotionStringsAmigaEnglish };
+
+static const char *const kEoB2WandStringsAmigaEnglish[1] = {
+ "The wand has no apparent magical effect\r"
+};
+
+static const StringListProvider kEoB2WandStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2WandStringsAmigaEnglish), kEoB2WandStringsAmigaEnglish };
+
+static const char *const kEoB2ItemMisuseStringsAmigaEnglish[3] = {
+ "%s can not use this item.\r",
+ "This item automatically used when worn.\r",
+ "This item is not used in this way.\r"
+};
+
+static const StringListProvider kEoB2ItemMisuseStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemMisuseStringsAmigaEnglish), kEoB2ItemMisuseStringsAmigaEnglish };
+
+static const char *const kEoB2TakenStringsAmigaEnglish[1] = {
+ " taken.\r"
+};
+
+static const StringListProvider kEoB2TakenStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2TakenStringsAmigaEnglish), kEoB2TakenStringsAmigaEnglish };
+
+static const char *const kEoB2PotionEffectStringsAmigaEnglish[8] = {
+ "much stronger",
+ "better",
+ "much better",
+ "ill for a moment",
+ "satiated",
+ "fast and agile",
+ "transparent",
+ "better"
+};
+
+static const StringListProvider kEoB2PotionEffectStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2PotionEffectStringsAmigaEnglish), kEoB2PotionEffectStringsAmigaEnglish };
+
+static const char *const kEoB2YesNoStringsAmigaEnglish[2] = {
+ "yes",
+ "no"
+};
+
+static const StringListProvider kEoB2YesNoStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2YesNoStringsAmigaEnglish), kEoB2YesNoStringsAmigaEnglish };
+
+static const char *const kEoB2MoreStringsAmigaEnglish[1] = {
+ "MORE"
+};
+
+static const StringListProvider kEoB2MoreStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MoreStringsAmigaEnglish), kEoB2MoreStringsAmigaEnglish };
+
+static const char *const kEoB2NpcMaxStringsAmigaEnglish[1] = {
+ "You may only have six characters in your party. Select the one you wish to drop."
+};
+
+static const StringListProvider kEoB2NpcMaxStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2NpcMaxStringsAmigaEnglish), kEoB2NpcMaxStringsAmigaEnglish };
+
+static const char *const kEoB2OkStringsAmigaEnglish[1] = {
+ "OK"
+};
+
+static const StringListProvider kEoB2OkStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2OkStringsAmigaEnglish), kEoB2OkStringsAmigaEnglish };
+
+static const char *const kEoB2NpcJoinStringsAmigaEnglish[1] = {
+ "%s joins the party.\r"
+};
+
+static const StringListProvider kEoB2NpcJoinStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2NpcJoinStringsAmigaEnglish), kEoB2NpcJoinStringsAmigaEnglish };
+
+static const char *const kEoB2CancelStringsAmigaEnglish[1] = {
+ "CANCEL"
+};
+
+static const StringListProvider kEoB2CancelStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2CancelStringsAmigaEnglish), kEoB2CancelStringsAmigaEnglish };
+
+static const char *const kEoB2AbortStringsAmigaEnglish[1] = {
+ "ABORT"
+};
+
+static const StringListProvider kEoB2AbortStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2AbortStringsAmigaEnglish), kEoB2AbortStringsAmigaEnglish };
+
+static const char *const kEoB2MenuStringsMainAmigaEnglish[8] = {
+ "Select Option:",
+ "Rest Party",
+ "Memorize Spells",
+ "Pray for Spells",
+ "Scribe Scrolls",
+ "Preferences",
+ "Game Options",
+ "Exit"
+};
+
+static const StringListProvider kEoB2MenuStringsMainAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsMainAmigaEnglish), kEoB2MenuStringsMainAmigaEnglish };
+
+static const char *const kEoB2MenuStringsSaveLoadAmigaEnglish[8] = {
+ "Load Game",
+ "Save Game",
+ "Drop Character",
+ "Quit Game",
+ "Game Options:",
+ "\r Game saved.",
+ "Attempts to save\ryour game have\rfailed!",
+ "Cannot load your\rsave game. The\rfile may be corrupt!"
+};
+
+static const StringListProvider kEoB2MenuStringsSaveLoadAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSaveLoadAmigaEnglish), kEoB2MenuStringsSaveLoadAmigaEnglish };
+
+static const char *const kEoB2MenuStringsOnOffAmigaEnglish[2] = {
+ "ON",
+ "OFF"
+};
+
+static const StringListProvider kEoB2MenuStringsOnOffAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsOnOffAmigaEnglish), kEoB2MenuStringsOnOffAmigaEnglish };
+
+static const char *const kEoB2MenuStringsSpellsAmigaEnglish[17] = {
+ "\r\r Select a character\r from your party who\r would like to learn\r spells.",
+ "\r Your Paladin is \r too low a level\r for spells.",
+ "\r\r The Mage has no\r Spell Book!",
+ "\r\r\r Select a character\r from your party\r who would like to\r pray for spells.",
+ "\r No party members\r are capable of\r praying for new\r spells.",
+ "\r No party members\r are capable of\r memorizing new\r spells.",
+ " An unconscious\r or dead Mage\r cannot memorize\r spells.",
+ " An unconscious\r or dead Cleric\r cannot pray for\r spells.",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "Clear",
+ "Spells Available:",
+ "Yes",
+ "No"
+};
+
+static const StringListProvider kEoB2MenuStringsSpellsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSpellsAmigaEnglish), kEoB2MenuStringsSpellsAmigaEnglish };
+
+static const char *const kEoB2MenuStringsRestAmigaEnglish[5] = {
+ "\rWill your healers\rheal the party?",
+ " Someone is still\r injured. Rest\r until healed?",
+ "Resting party.",
+ "\r All characters\r are fully\r rested.",
+ " Your party needs\r to rest to gain\r spells."
+};
+
+static const StringListProvider kEoB2MenuStringsRestAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRestAmigaEnglish), kEoB2MenuStringsRestAmigaEnglish };
+
+static const char *const kEoB2MenuStringsDropAmigaEnglish[1] = {
+ " You cannot have\r less than four\r characters."
+};
+
+static const StringListProvider kEoB2MenuStringsDropAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDropAmigaEnglish), kEoB2MenuStringsDropAmigaEnglish };
+
+static const char *const kEoB2MenuStringsExitAmigaEnglish[1] = {
+ " Are you sure you\r wish to exit the\r game?"
+};
+
+static const StringListProvider kEoB2MenuStringsExitAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsExitAmigaEnglish), kEoB2MenuStringsExitAmigaEnglish };
+
+static const char *const kEoB2MenuStringsStarveAmigaEnglish[1] = {
+ " Your party is\r starving. Do you\r wish to continue\r resting?"
+};
+
+static const StringListProvider kEoB2MenuStringsStarveAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsStarveAmigaEnglish), kEoB2MenuStringsStarveAmigaEnglish };
+
+static const char *const kEoB2MenuStringsScribeAmigaEnglish[5] = {
+ "Select the scroll(s)\ryou wish to scribe.",
+ "\r\r\r Select a Mage\r from your party\r who would like to\r scribe spells.",
+ " You don't have\r any scolls to be\r scribed.",
+ " You don't have\r any scrolls that\r this Mage needs.",
+ "\r You don't have\r any Mage able to\r scribe scrolls."
+};
+
+static const StringListProvider kEoB2MenuStringsScribeAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsScribeAmigaEnglish), kEoB2MenuStringsScribeAmigaEnglish };
+
+static const char *const kEoB2MenuStringsDrop2AmigaEnglish[3] = {
+ " Select the\r character you\r wish to drop.",
+ " You must specify\r a name for your\r save game!",
+ " Are you sure you\r wish to replace\r your saved game?"
+};
+
+static const StringListProvider kEoB2MenuStringsDrop2AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDrop2AmigaEnglish), kEoB2MenuStringsDrop2AmigaEnglish };
+
+static const char *const kEoB2MenuStringsHeadAmigaEnglish[3] = {
+ "Camp:",
+ "Preferences:",
+ "Game Options:"
+};
+
+static const StringListProvider kEoB2MenuStringsHeadAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsHeadAmigaEnglish), kEoB2MenuStringsHeadAmigaEnglish };
+
+static const char *const kEoB2MenuStringsPoisonAmigaEnglish[1] = {
+ "Poisoned party\rmembers may die!\rRest anyway?"
+};
+
+static const StringListProvider kEoB2MenuStringsPoisonAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsPoisonAmigaEnglish), kEoB2MenuStringsPoisonAmigaEnglish };
+
+static const char *const kEoB2MenuStringsMgcAmigaEnglish[2] = {
+ "%-18s %1d",
+ "%d of %d Remaining. "
+};
+
+static const StringListProvider kEoB2MenuStringsMgcAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsMgcAmigaEnglish), kEoB2MenuStringsMgcAmigaEnglish };
+
+static const char *const kEoB2MenuStringsPrefsAmigaEnglish[4] = {
+ "Tunes are %-3s",
+ "Sounds are %-3s",
+ "Bar Graphs are %-3s",
+ ""
+};
+
+static const StringListProvider kEoB2MenuStringsPrefsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsPrefsAmigaEnglish), kEoB2MenuStringsPrefsAmigaEnglish };
+
+static const char *const kEoB2MenuStringsRest2AmigaEnglish[5] = {
+ "%s gained %s.\r",
+ "%s memorized %s.\r",
+ "%s casts healing on %s.\r",
+ "Hours rested: %-4d",
+ "\r%s\r"
+};
+
+static const StringListProvider kEoB2MenuStringsRest2AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest2AmigaEnglish), kEoB2MenuStringsRest2AmigaEnglish };
+
+static const char *const kEoB2MenuStringsRest3AmigaEnglish[1] = {
+ "\x06\x06""You do not feel it is safe to rest here."
+};
+
+static const StringListProvider kEoB2MenuStringsRest3AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest3AmigaEnglish), kEoB2MenuStringsRest3AmigaEnglish };
+
+static const char *const kEoB2MenuStringsRest4AmigaEnglish[1] = {
+ "\x06\x06""You can't rest here, monsters are near."
+};
+
+static const StringListProvider kEoB2MenuStringsRest4AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest4AmigaEnglish), kEoB2MenuStringsRest4AmigaEnglish };
+
+static const char *const kEoB2MenuStringsDefeatAmigaEnglish[1] = {
+ "\rYour entire party\rhas been defeated!\rWould you like to\rload a previously\rsaved game?"
+};
+
+static const StringListProvider kEoB2MenuStringsDefeatAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDefeatAmigaEnglish), kEoB2MenuStringsDefeatAmigaEnglish };
+
+static const char *const kEoB2MenuStringsTransferAmigaEnglish[5] = {
+ "You must transfer\rfour party members\rbefore you may play!",
+ "You may only transfer\rfour party members to\rEOB II!",
+ "Items which are not\ruseful or unbalance\rthe game will be\rdeleted.",
+ " \r You do not have\r a mage in your\r party.",
+ " \r You do not have\r a cleric or\r paladin in your\r party."
+};
+
+static const StringListProvider kEoB2MenuStringsTransferAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsTransferAmigaEnglish), kEoB2MenuStringsTransferAmigaEnglish };
+
+static const char *const kEoB2MenuStringsSpecAmigaEnglish[2] = {
+ "As you awaken, you\rdiscover that Insal\rthe thief is gone!",
+ "A quick inventory\rreveals equipment\rhas been stolen!"
+};
+
+static const StringListProvider kEoB2MenuStringsSpecAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSpecAmigaEnglish), kEoB2MenuStringsSpecAmigaEnglish };
+
+static const char *const kEoB2MenuYesNoStringsAmigaEnglish[2] = {
+ "Yes",
+ "No"
+};
+
+static const StringListProvider kEoB2MenuYesNoStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuYesNoStringsAmigaEnglish), kEoB2MenuYesNoStringsAmigaEnglish };
+
+static const char *const kEoB2CharGuiStringsHpAmigaEnglish[2] = {
+ "HP",
+ "%3d of %-3d"
+};
+
+static const StringListProvider kEoB2CharGuiStringsHpAmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsHpAmigaEnglish), kEoB2CharGuiStringsHpAmigaEnglish };
+
+static const char *const kEoB2CharGuiStringsWp2AmigaEnglish[3] = {
+ "MISS",
+ "HACK",
+ "BASH"
+};
+
+static const StringListProvider kEoB2CharGuiStringsWp2AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsWp2AmigaEnglish), kEoB2CharGuiStringsWp2AmigaEnglish };
+
+static const char *const kEoB2CharGuiStringsWrAmigaEnglish[4] = {
+ "CAN'T",
+ "REACH",
+ "NO",
+ "AMMO"
+};
+
+static const StringListProvider kEoB2CharGuiStringsWrAmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsWrAmigaEnglish), kEoB2CharGuiStringsWrAmigaEnglish };
+
+static const char *const kEoB2CharGuiStringsSt2AmigaEnglish[7] = {
+ "Swapping",
+ "DEAD",
+ "UNCONSCIOUS",
+ "POISON (SLOW)",
+ "POISONED",
+ "PARALYZED",
+ "PETRIFIED"
+};
+
+static const StringListProvider kEoB2CharGuiStringsSt2AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsSt2AmigaEnglish), kEoB2CharGuiStringsSt2AmigaEnglish };
+
+static const char *const kEoB2CharGuiStringsInAmigaEnglish[4] = {
+ "CHARACTER INFO",
+ "ARMOR CLASS",
+ "EXP",
+ "LVL"
+};
+
+static const StringListProvider kEoB2CharGuiStringsInAmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsInAmigaEnglish), kEoB2CharGuiStringsInAmigaEnglish };
+
+static const char *const kEoB2CharStatusStrings7AmigaEnglish[1] = {
+ "%s no longer has giant strength.\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings7AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings7AmigaEnglish), kEoB2CharStatusStrings7AmigaEnglish };
+
+static const char *const kEoB2CharStatusStrings82AmigaEnglish[1] = {
+ "\x06\x06""%s feels the effects of poison!\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings82AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings82AmigaEnglish), kEoB2CharStatusStrings82AmigaEnglish };
+
+static const char *const kEoB2CharStatusStrings9AmigaEnglish[1] = {
+ "\x06\x04""%s is no longer paralyzed!\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings9AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings9AmigaEnglish), kEoB2CharStatusStrings9AmigaEnglish };
+
+static const char *const kEoB2CharStatusStrings12AmigaEnglish[1] = {
+ "%s slows down.\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings12AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings12AmigaEnglish), kEoB2CharStatusStrings12AmigaEnglish };
+
+static const char *const kEoB2CharStatusStrings132AmigaEnglish[1] = {
+ "\x06\x06""%s is %s!\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings132AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings132AmigaEnglish), kEoB2CharStatusStrings132AmigaEnglish };
+
+static const char *const kEoB2LevelGainStringsAmigaEnglish[1] = {
+ "\x06\x01""%s has gained a level.""\x06\x0f""\r"
+};
+
+static const StringListProvider kEoB2LevelGainStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2LevelGainStringsAmigaEnglish), kEoB2LevelGainStringsAmigaEnglish };
+
+static const char *const kEoB2BookNumbersAmigaEnglish[5] = {
+ "First",
+ "Second",
+ "Third",
+ "Fourth",
+ "Fifth"
+};
+
+static const StringListProvider kEoB2BookNumbersAmigaEnglishProvider = { ARRAYSIZE(kEoB2BookNumbersAmigaEnglish), kEoB2BookNumbersAmigaEnglish };
+
+static const char *const kEoB2MageSpellsListAmigaEnglish[33] = {
+ "",
+ "Armor",
+ "Burning Hands",
+ "Detect Magic",
+ "Magic Missile",
+ "Shield",
+ "Shocking Grasp",
+ "Blur",
+ "Detect Invisible",
+ "Imp Identify",
+ "Invisibility",
+ "M's Acid Arrow",
+ "Dispel Magic",
+ "Fireball",
+ "Haste",
+ "Hold Person",
+ "Invisibility 10'",
+ "Lightning Bolt",
+ "Vampiric Touch",
+ "Fear",
+ "Ice Storm",
+ "Imp Invisibility",
+ "Remove Curse",
+ "Cone of Cold",
+ "Hold Monster",
+ "Wall of Force",
+ "Disintegrate",
+ "Flesh to Stone",
+ "Stone to Flesh",
+ "True Seeing",
+ "Finger of Death",
+ "Power Word Stun",
+ "Bigby's Fist"
+};
+
+static const StringListProvider kEoB2MageSpellsListAmigaEnglishProvider = { ARRAYSIZE(kEoB2MageSpellsListAmigaEnglish), kEoB2MageSpellsListAmigaEnglish };
+
+static const char *const kEoB2ClericSpellsListAmigaEnglish[30] = {
+ "",
+ "Bless",
+ "Cause Light Wnds",
+ "Cure Light Wnds",
+ "Detect Magic",
+ "Protect-Evil",
+ "Aid",
+ "Flame Blade",
+ "Hold Person",
+ "Slow Poison",
+ "Create Food",
+ "Dispel Magic",
+ "Magical Vestment",
+ "Prayer",
+ "Remove Paralysis",
+ "Cause Serious",
+ "Cure Serious",
+ "Neutral-Poison",
+ "Protect-Evil 10'",
+ "Cause Critical",
+ "Cure Critical",
+ "Flame Strike",
+ "Raise Dead",
+ "Slay Living",
+ "True Seeing",
+ "Harm",
+ "Heal",
+ "Ressurection",
+ "Lay on Hands",
+ "Turn undead"
+};
+
+static const StringListProvider kEoB2ClericSpellsListAmigaEnglishProvider = { ARRAYSIZE(kEoB2ClericSpellsListAmigaEnglish), kEoB2ClericSpellsListAmigaEnglish };
+
+static const char *const kEoB2SpellNamesAmigaEnglish[68] = {
+ "armor",
+ "burning hands",
+ "detect magic",
+ "magic missile",
+ "shield",
+ "shocking grasp",
+ "blur",
+ "detect invisibility",
+ "improved identify",
+ "invisibility",
+ "melf's acid arrow",
+ "dispel magic",
+ "fireball",
+ "haste",
+ "Hold Person",
+ "invisibility 10' radius",
+ "lightning bolt",
+ "vampiric touch",
+ "fear",
+ "ice storm",
+ "improved invisibility",
+ "remove curse",
+ "cone of cold",
+ "hold monster",
+ "wall of force",
+ "disintegrate",
+ "flesh to stone",
+ "stone to flesh",
+ "true seeing",
+ "finger of death",
+ "power word stun",
+ "bigby's clenched fist",
+ "bless",
+ "cause light wounds",
+ "cure light wounds",
+ "detect magic",
+ "protection from evil",
+ "aid",
+ "flame blade",
+ "hold person",
+ "slow poison",
+ "create food",
+ "dispel magic",
+ "magical vestment",
+ "prayer",
+ "remove paralysis",
+ "cause serious wounds",
+ "cure serious wounds",
+ "neutralize poison",
+ "protection from evil 10' radius",
+ "cause critical wounds",
+ "cure critical wounds",
+ "flame strike",
+ "raise dead",
+ "slay living",
+ "true seeing",
+ "harm",
+ "heal",
+ "ressurection",
+ "lay on hands",
+ "turn undead",
+ "",
+ "mystic defense",
+ "",
+ "",
+ "",
+ "",
+ ""
+};
+
+static const StringListProvider kEoB2SpellNamesAmigaEnglishProvider = { ARRAYSIZE(kEoB2SpellNamesAmigaEnglish), kEoB2SpellNamesAmigaEnglish };
+
+static const char *const kEoB2MagicStrings1AmigaEnglish[6] = {
+ "ABORT SPELL",
+ "ABORT SPELL",
+ "You must have a free hand for this spell.\r",
+ "You can't have two of this spell type active.\r",
+ "%s casts %s.\r",
+ "\rok\r"
+};
+
+static const StringListProvider kEoB2MagicStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings1AmigaEnglish), kEoB2MagicStrings1AmigaEnglish };
+
+static const char *const kEoB2MagicStrings2AmigaEnglish[5] = {
+ "The spell fails!\r",
+ "%s has been disintegrated!\r",
+ "\x06\x06""The party has been hit by a death spell!\r",
+ "\x06\x06""%s has been hit by cause serious wounds.\r",
+ "PETRIFIED"
+};
+
+static const StringListProvider kEoB2MagicStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings2AmigaEnglish), kEoB2MagicStrings2AmigaEnglish };
+
+static const char *const kEoB2MagicStrings3AmigaEnglish[5] = {
+ "Cast spell on which character? ",
+ "\rSpell aborted.\r",
+ "%s's %s spell expires.\r",
+ "%s missed the monster.\r",
+ "%s must be in the front ranks to hit!\r"
+};
+
+static const StringListProvider kEoB2MagicStrings3AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings3AmigaEnglish), kEoB2MagicStrings3AmigaEnglish };
+
+static const char *const kEoB2MagicStrings4AmigaEnglish[1] = {
+ "no effect.\r"
+};
+
+static const StringListProvider kEoB2MagicStrings4AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings4AmigaEnglish), kEoB2MagicStrings4AmigaEnglish };
+
+static const char *const kEoB2MagicStrings6AmigaEnglish[1] = {
+ "%s already has an armor class better than AC 6."
+};
+
+static const StringListProvider kEoB2MagicStrings6AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings6AmigaEnglish), kEoB2MagicStrings6AmigaEnglish };
+
+static const char *const kEoB2MagicStrings7AmigaEnglish[2] = {
+ "%s is already under the effect of a %s spell.\r",
+ "The party is already under the effect of a %s spell.\r"
+};
+
+static const StringListProvider kEoB2MagicStrings7AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings7AmigaEnglish), kEoB2MagicStrings7AmigaEnglish };
+
+static const char *const kEoB2MagicStrings8AmigaEnglish[6] = {
+ "The spell fails!\r",
+ "held",
+ "The spell fails!\r",
+ "The spell fails\r",
+ "No monster within reach!\r",
+ "%s is already under the effect of an aid spell.\r"
+};
+
+static const StringListProvider kEoB2MagicStrings8AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings8AmigaEnglish), kEoB2MagicStrings8AmigaEnglish };
+
+static const byte kEoB2ManDefAmigaEnglish[200] = {
+ 0x09, 0x03, 0x04, 0x00, 0x09, 0x0d, 0x02, 0x00,
+ 0x09, 0x07, 0x07, 0x00, 0x14, 0x06, 0x05, 0x00,
+ 0x14, 0x10, 0x06, 0x00, 0x14, 0x1c, 0x03, 0x00,
+ 0x1a, 0x04, 0x06, 0x00, 0x1a, 0x0a, 0x05, 0x00,
+ 0x1a, 0x0c, 0x05, 0x00, 0x15, 0x03, 0x04, 0x00,
+ 0x15, 0x05, 0x05, 0x00, 0x15, 0x0f, 0x02, 0x00,
+ 0x15, 0x14, 0x03, 0x00, 0x15, 0x1b, 0x02, 0x00,
+ 0x15, 0x1d, 0x03, 0x00, 0x23, 0x01, 0x03, 0x00,
+ 0x23, 0x03, 0x03, 0x00, 0x23, 0x08, 0x03, 0x00,
+ 0x23, 0x19, 0x02, 0x00, 0x23, 0x1f, 0x04, 0x00,
+ 0x23, 0x26, 0x04, 0x00, 0x26, 0x03, 0x02, 0x00,
+ 0x26, 0x05, 0x06, 0x00, 0x26, 0x12, 0x03, 0x00,
+ 0x26, 0x18, 0x01, 0x00, 0x26, 0x1e, 0x01, 0x00,
+ 0x26, 0x21, 0x04, 0x00, 0x17, 0x01, 0x03, 0x00,
+ 0x17, 0x03, 0x06, 0x00, 0x17, 0x06, 0x02, 0x00,
+ 0x17, 0x0f, 0x05, 0x00, 0x17, 0x1b, 0x01, 0x00,
+ 0x17, 0x21, 0x06, 0x00, 0x12, 0x03, 0x02, 0x00,
+ 0x12, 0x05, 0x04, 0x00, 0x12, 0x09, 0x02, 0x00,
+ 0x12, 0x0b, 0x04, 0x00, 0x12, 0x0d, 0x06, 0x00,
+ 0x12, 0x0f, 0x03, 0x00, 0x12, 0x11, 0x05, 0x00,
+ 0x12, 0x12, 0x02, 0x00, 0x1f, 0x02, 0x04, 0x00,
+ 0x1f, 0x02, 0x07, 0x00, 0x1f, 0x04, 0x03, 0x00,
+ 0x1f, 0x06, 0x03, 0x00, 0x1f, 0x09, 0x03, 0x00,
+ 0x1f, 0x0a, 0x01, 0x00, 0x1c, 0x03, 0x03, 0x00,
+ 0x1c, 0x04, 0x02, 0x00, 0x1c, 0x05, 0x06, 0x00
+};
+
+static const ByteProvider kEoB2ManDefAmigaEnglishProvider = { ARRAYSIZE(kEoB2ManDefAmigaEnglish), kEoB2ManDefAmigaEnglish };
+
+static const char *const kEoB2ManWordAmigaEnglish[51] = {
+ "cursor",
+ "majority",
+ "right",
+ "unusable",
+ "greyed",
+ "thrown",
+ "spellcasters",
+ "button",
+ "characters",
+ "carefree",
+ "practical",
+ "inherit",
+ "while",
+ "combinations",
+ "charm",
+ "individuals",
+ "gestures",
+ "pummel",
+ "paladins",
+ "skill",
+ "advancement",
+ "also",
+ "counters",
+ "knowledge",
+ "greater",
+ "assume",
+ "several",
+ "laying",
+ "reach",
+ "swiftly",
+ "allows",
+ "limited",
+ "jack",
+ "thrown",
+ "weapons",
+ "note",
+ "certain",
+ "damage",
+ "done",
+ "bonus",
+ "may",
+ "over",
+ "box",
+ "put",
+ "portrait",
+ "backpack",
+ "inside",
+ "causes",
+ "until",
+ "outright",
+ ""
+};
+
+static const StringListProvider kEoB2ManWordAmigaEnglishProvider = { ARRAYSIZE(kEoB2ManWordAmigaEnglish), kEoB2ManWordAmigaEnglish };
+
+static const char *const kEoB2ManPromptAmigaEnglish[1] = {
+ "\r\r\r\rOn the page with this symbol...\r\rFind line %d\rEnter word %d\r"
+};
+
+static const StringListProvider kEoB2ManPromptAmigaEnglishProvider = { ARRAYSIZE(kEoB2ManPromptAmigaEnglish), kEoB2ManPromptAmigaEnglish };
+
+static const char *const kEoB2MainMenuStringsAmigaEnglish[5] = {
+ "LOAD GAME IN PROGRESS\r",
+ "START A NEW PARTY\r",
+ "TRANSFER EOB I PARTY\r",
+ "RUN INTRODUCTION\r",
+ "FORMAT SAVE GAME DISK\r"
+};
+
+static const StringListProvider kEoB2MainMenuStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MainMenuStringsAmigaEnglish), kEoB2MainMenuStringsAmigaEnglish };
+
+static const char *const kEoB2TransferStrings1AmigaEnglish[2] = {
+ "Level: %d",
+ " / %d"
+};
+
+static const StringListProvider kEoB2TransferStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB2TransferStrings1AmigaEnglish), kEoB2TransferStrings1AmigaEnglish };
+
+static const char *const kEoB2TransferStrings2AmigaEnglish[2] = {
+ "You may only take four characters on your adventure.",
+ "Select OK when you are finished choosing your party."
+};
+
+static const StringListProvider kEoB2TransferStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB2TransferStrings2AmigaEnglish), kEoB2TransferStrings2AmigaEnglish };
+
+static const char *const kEoB2TransferLabelsAmigaEnglish[2] = {
+ "CANCEL",
+ "OK"
+};
+
+static const StringListProvider kEoB2TransferLabelsAmigaEnglishProvider = { ARRAYSIZE(kEoB2TransferLabelsAmigaEnglish), kEoB2TransferLabelsAmigaEnglish };
+
+static const char *const kEoB2IntroStringsAmigaEnglish[20] = {
+ "You were settling in for an evening \rby the fire.",
+ "Then a note was slipped to you.",
+ "It was from your friend Khelben \rBlackstaff, Archmage of the city.",
+ "The message was urgent.",
+ "What could Khelben want?",
+ "Welcome, please come in.",
+ "Khelben awaits you in his study.",
+ "Thank you for coming so quickly.",
+ "I am troubled my friend.",
+ "Ancient Evil stirs in the \rTemple Darkmoon.",
+ "I fear for the safety of our city.",
+ "I need your help.",
+ "Three nights ago \rI sent forth a scout.",
+ "She has not yet returned.",
+ "I fear for her safety.",
+ "Take this coin.",
+ "I will use it to contact you.",
+ "You must act quickly.",
+ "I will teleport you near Darkmoon.",
+ "May luck be with you, my friend."
+};
+
+static const StringListProvider kEoB2IntroStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2IntroStringsAmigaEnglish), kEoB2IntroStringsAmigaEnglish };
+
+static const char *const kEoB2IntroCPSFilesAmigaEnglish[16] = {
+ "STREET1.CPS",
+ "STREET2.CPS",
+ "DOORWAY1.CPS",
+ "DOORWAY2.CPS",
+ "WESTWOOD1.CPS",
+ "WINDING.CPS",
+ "KHELBAN2.CPS",
+ "KHELBAN1.CPS",
+ "KHELBAN3.CPS",
+ "KHELBAN4.CPS",
+ "COIN.CPS",
+ "KHELBAN5.CPS",
+ "KHELBAN6.CPS",
+ "WESTWOOD2.CPS",
+ "WESTWOOD3.CPS",
+ "WESTWOOD4.CPS"
+};
+
+static const StringListProvider kEoB2IntroCPSFilesAmigaEnglishProvider = { ARRAYSIZE(kEoB2IntroCPSFilesAmigaEnglish), kEoB2IntroCPSFilesAmigaEnglish };
+
+static const char *const kEoB2FinaleStringsAmigaEnglish[20] = {
+ "Finally, Dran has been defeated.",
+ "Suddenly, your friend Khelben appears.",
+ "Greetings, my victorious friends.",
+ "You have defeated Dran!",
+ "I did not know Dran was a dragon.",
+ "He must have been over 300 years old!",
+ "His power is gone.",
+ "But Darkmoon is still a source\rof great evil.",
+ "And many of his minions remain.",
+ "Now we must leave this place.",
+ "So my forces can destroy it\ronce and for all.",
+ "Follow me.",
+ "Powerful mages stand ready\rfor the final assault\ron Darkmoon.",
+ "The Temple's evil is very strong.",
+ "It must not be allowed to survive!",
+ "The Temple ceases to exist.",
+ "My friends, our work is done.",
+ "Thank you.",
+ "You have earned my deepest respect.",
+ "We will remember you always."
+};
+
+static const StringListProvider kEoB2FinaleStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2FinaleStringsAmigaEnglish), kEoB2FinaleStringsAmigaEnglish };
+
+static const char *const kEoB2FinaleCPSFilesAmigaEnglish[13] = {
+ "DRAGON1.CPS",
+ "DRAGON2.CPS",
+ "HURRY1.CPS",
+ "HURRY2.CPS",
+ "DESTROY0.CPS",
+ "DESTROY1.CPS",
+ "DESTROY2.CPS",
+ "MAGIC.CPS",
+ "DESTROY3.CPS",
+ "CREDITS2.CPS",
+ "CREDITS3.CPS",
+ "HEROES.CPS",
+ "THANKS.CPS"
+};
+
+static const StringListProvider kEoB2FinaleCPSFilesAmigaEnglishProvider = { ARRAYSIZE(kEoB2FinaleCPSFilesAmigaEnglish), kEoB2FinaleCPSFilesAmigaEnglish };
+
+static const char *const kEoB2MonsterDistAttStringsAmigaEnglish[5] = {
+ "The party is hit with a psychic mind blast!\r",
+ "paralyzed",
+ "poisoned",
+ "paralyzed",
+ "PETRIFIED"
+};
+
+static const StringListProvider kEoB2MonsterDistAttStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MonsterDistAttStringsAmigaEnglish), kEoB2MonsterDistAttStringsAmigaEnglish };
+
+static const char *const kEoB2Npc1StringsAmigaEnglish[2] = {
+ "talk",
+ "leave"
+};
+
+static const StringListProvider kEoB2Npc1StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2Npc1StringsAmigaEnglish), kEoB2Npc1StringsAmigaEnglish };
+
+static const char *const kEoB2Npc2StringsAmigaEnglish[2] = {
+ "release him",
+ "leave"
+};
+
+static const StringListProvider kEoB2Npc2StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2Npc2StringsAmigaEnglish), kEoB2Npc2StringsAmigaEnglish };
+
+static const char *const kEoB2MonsterDustStringsAmigaEnglish[1] = {
+ "The monster crumbles to dust!\r"
+};
+
+static const StringListProvider kEoB2MonsterDustStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MonsterDustStringsAmigaEnglish), kEoB2MonsterDustStringsAmigaEnglish };
+
+static const char *const kEoB2KheldranStringsAmigaEnglish[1] = {
+ " Such trusting whelps!"
+};
+
+static const StringListProvider kEoB2KheldranStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2KheldranStringsAmigaEnglish), kEoB2KheldranStringsAmigaEnglish };
+
+static const char *const kEoB2HornStringsAmigaEnglish[4] = {
+ "A bellowing sound comes from the horn.\r",
+ "A hollow sound comes from the horn.\r",
+ "A melodious sound comes from the horn.\r",
+ "An eerie sound comes from the horn.\r"
+};
+
+static const StringListProvider kEoB2HornStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2HornStringsAmigaEnglish), kEoB2HornStringsAmigaEnglish };
+
diff --git a/devtools/create_kyradat/resources/eob2_amiga_german.h b/devtools/create_kyradat/resources/eob2_amiga_german.h
new file mode 100644
index 0000000000..df609f2e02
--- /dev/null
+++ b/devtools/create_kyradat/resources/eob2_amiga_german.h
@@ -0,0 +1,1057 @@
+static const char *const kEoB2ChargenStrings1AmigaGerman[9] = {
+ "Die Party ist\rkomplett. W""\xe4""hle\rSPIEL oder\rdr""\xfc""cke 'P', um\rzu starten.",
+ " ",
+ "RK\rTP\rSTF",
+ "%s\r%d\r%d\r%d\r%d\r%d",
+ "%d\r%d",
+ "%d",
+ "%d/%d",
+ "%d/%d/%d",
+ "W""\xe4""hle die Box des\rCharakters, den du\rerschaffen oder\ransehen willst."
+};
+
+static const StringListProvider kEoB2ChargenStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenStrings1AmigaGerman), kEoB2ChargenStrings1AmigaGerman };
+
+static const char *const kEoB2ChargenStrings2AmigaGerman[12] = {
+ "%s",
+ "%d",
+ "%s",
+ "%d",
+ "%d",
+ "%d",
+ "%s",
+ "%d",
+ "W""\xc4""HLE RASSE:",
+ "W""\xc4""HLE KLASSE:",
+ "W""\xc4""HLE GESINNUNG:",
+ "Name:"
+};
+
+static const StringListProvider kEoB2ChargenStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenStrings2AmigaGerman), kEoB2ChargenStrings2AmigaGerman };
+
+static const char *const kEoB2ChargenStatStringsAmigaGerman[12] = {
+ "ST""\xc4",
+ "INT",
+ "WEI",
+ "GES",
+ "KON",
+ "CHA",
+ "ST""\xc4""RKE",
+ "INTELLIGENZ",
+ "WEISHEIT",
+ "GESCHICK",
+ "KONSTITUTION",
+ "CHARISMA"
+};
+
+static const StringListProvider kEoB2ChargenStatStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenStatStringsAmigaGerman), kEoB2ChargenStatStringsAmigaGerman };
+
+static const char *const kEoB2ChargenRaceSexStringsAmigaGerman[12] = {
+ "MENSCH, MANN",
+ "MENSCH, FRAU",
+ "ELF, MANN",
+ "ELF, FRAU",
+ "HALBELF, MANN",
+ "HALBELF, FRAU",
+ "ZWERG, MANN",
+ "ZWERG, FRAU",
+ "GNOM, MANN",
+ "GNOM, FRAU",
+ "HALBLING, MANN",
+ "HALBLING, FRAU"
+};
+
+static const StringListProvider kEoB2ChargenRaceSexStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenRaceSexStringsAmigaGerman), kEoB2ChargenRaceSexStringsAmigaGerman };
+
+static const char *const kEoB2ChargenClassStringsAmigaGerman[21] = {
+ "K""\xc4""MPFER",
+ "WALDL""\xc4""UFER",
+ "PALADIN",
+ "MAGIER",
+ "KLERIKER",
+ "DIEB",
+ "K""\xc4""MPFER/KLERIKER",
+ "K""\xc4""MPFER/DIEB",
+ "K""\xc4""MPFER/MAGIER",
+ "K""\xc4""MPFER/MAGIER/DIEB",
+ "DIEB/MAGIER",
+ "KLERIKER/DIEB",
+ "K""\xc4""MPFER/KLER./MAG.",
+ "WALDL./KLER.",
+ "KLER./MAGIER",
+ "K""\xc4""MPFER",
+ "MAGIER",
+ "KLERIKER",
+ "DIEB",
+ "PALADIN",
+ "WALDL."
+};
+
+static const StringListProvider kEoB2ChargenClassStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenClassStringsAmigaGerman), kEoB2ChargenClassStringsAmigaGerman };
+
+static const char *const kEoB2ChargenAlignmentStringsAmigaGerman[9] = {
+ "RECHTSCH. GUT",
+ "NEUTRAL GUT",
+ "CHAOTISCH GUT",
+ "RECHTSCH. NEUTRAL",
+ "NEUTRAL",
+ "CHAOTISCH NEUTRAL",
+ "RECHTSCH. B""\xd6""SE",
+ "NEUTRAL B""\xd6""SE",
+ "CHAOTISCH B""\xd6""SE"
+};
+
+static const StringListProvider kEoB2ChargenAlignmentStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenAlignmentStringsAmigaGerman), kEoB2ChargenAlignmentStringsAmigaGerman };
+
+static const char *const kEoB2ChargenEnterGameStringsAmigaGerman[1] = {
+ " Lade Spiel.\r Bitte warten."
+};
+
+static const StringListProvider kEoB2ChargenEnterGameStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenEnterGameStringsAmigaGerman), kEoB2ChargenEnterGameStringsAmigaGerman };
+
+static const char *const kEoB2PryDoorStringsAmigaGerman[9] = {
+ "\r",
+ "Ihr k""\xf6""nnt die T""\xfc""r nicht aufbrechen.\r",
+ "\x06\x04""Ihr brecht die T""\xfc""r auf.\r",
+ "\x06\x06""Ihr versucht vergeblich die T""\xfc""r gewaltsam zu\r""\xf6""ffnen.\r",
+ "Das kann man hier nicht ablegen.\r",
+ "Das passt hier nicht.\r",
+ "Niemand kann die T""\xfc""r aufbrechen.\r",
+ "\r",
+ "\r"
+};
+
+static const StringListProvider kEoB2PryDoorStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2PryDoorStringsAmigaGerman), kEoB2PryDoorStringsAmigaGerman };
+
+static const char *const kEoB2WarningStringsAmigaGerman[4] = {
+ "Da geht's nicht lang.\r",
+ "%s kann nichts zu sich nehmen!\r",
+ "Das Zeug ist vergammelt! das will doch kein Mensch essen!\r",
+ "Euch bekommt nur richtige Nahrung!\r"
+};
+
+static const StringListProvider kEoB2WarningStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2WarningStringsAmigaGerman), kEoB2WarningStringsAmigaGerman };
+
+static const char *const kEoB2ItemSuffixStringsRingsAmigaGerman[4] = {
+ "s Schmuckes",
+ "r Zauberei",
+ "r Nahrung",
+ "s Federfalls"
+};
+
+static const StringListProvider kEoB2ItemSuffixStringsRingsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsRingsAmigaGerman), kEoB2ItemSuffixStringsRingsAmigaGerman };
+
+static const char *const kEoB2ItemSuffixStringsPotionsAmigaGerman[8] = {
+ "r Riesenkraft",
+ "r Heilung",
+ "r Extra Heilung",
+ "s Giftes",
+ "r Lebenskraft",
+ "r Geschwindigkeit",
+ "r Unsichtbarkeit",
+ "r Entgiftung"
+};
+
+static const StringListProvider kEoB2ItemSuffixStringsPotionsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsPotionsAmigaGerman), kEoB2ItemSuffixStringsPotionsAmigaGerman };
+
+static const char *const kEoB2ItemSuffixStringsWandsAmigaGerman[8] = {
+ "r L""\xe4""hmung",
+ "s Gewitters",
+ "r K""\xe4""lte",
+ "r Heilung",
+ "s Feuerballs",
+ "Sternenfeuer",
+ "r Magischen Geschosse",
+ "r gebannten magie"
+};
+
+static const StringListProvider kEoB2ItemSuffixStringsWandsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsWandsAmigaGerman), kEoB2ItemSuffixStringsWandsAmigaGerman };
+
+static const char *const kEoB2RipItemStringsAmigaGerman[4] = {
+ "%s verlor: ",
+ "%s verlor: ",
+ ".\r",
+ "%d %s (verflucht)"
+};
+
+static const StringListProvider kEoB2RipItemStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2RipItemStringsAmigaGerman), kEoB2RipItemStringsAmigaGerman };
+
+static const char *const kEoB2CursedStringAmigaGerman[1] = {
+ "%d %s (verflucht) "
+};
+
+static const StringListProvider kEoB2CursedStringAmigaGermanProvider = { ARRAYSIZE(kEoB2CursedStringAmigaGerman), kEoB2CursedStringAmigaGerman };
+
+static const char *const kEoB2MagicObjectStringsAmigaGerman[5] = {
+ "Magierrolle",
+ "Klerikerrolle",
+ "Ring",
+ "Trank",
+ "Stab"
+};
+
+static const StringListProvider kEoB2MagicObjectStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MagicObjectStringsAmigaGerman), kEoB2MagicObjectStringsAmigaGerman };
+
+static const char *const kEoB2MagicObjectString5AmigaGerman[1] = {
+ "Zepter"
+};
+
+static const StringListProvider kEoB2MagicObjectString5AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicObjectString5AmigaGerman), kEoB2MagicObjectString5AmigaGerman };
+
+static const char *const kEoB2PatternSuffixAmigaGerman[1] = {
+ "%s de%s"
+};
+
+static const StringListProvider kEoB2PatternSuffixAmigaGermanProvider = { ARRAYSIZE(kEoB2PatternSuffixAmigaGerman), kEoB2PatternSuffixAmigaGerman };
+
+static const char *const kEoB2PatternGrFix1AmigaGerman[1] = {
+ "%s: %s"
+};
+
+static const StringListProvider kEoB2PatternGrFix1AmigaGermanProvider = { ARRAYSIZE(kEoB2PatternGrFix1AmigaGerman), kEoB2PatternGrFix1AmigaGerman };
+
+static const char *const kEoB2PatternGrFix2AmigaGerman[1] = {
+ "%s %s"
+};
+
+static const StringListProvider kEoB2PatternGrFix2AmigaGermanProvider = { ARRAYSIZE(kEoB2PatternGrFix2AmigaGerman), kEoB2PatternGrFix2AmigaGerman };
+
+static const char *const kEoB2ValidateArmorStringAmigaGerman[1] = {
+ "%s kann diese r""\xfc""stungsart nicht tragen.\r"
+};
+
+static const StringListProvider kEoB2ValidateArmorStringAmigaGermanProvider = { ARRAYSIZE(kEoB2ValidateArmorStringAmigaGerman), kEoB2ValidateArmorStringAmigaGerman };
+
+static const char *const kEoB2ValidateCursedStringAmigaGerman[1] = {
+ "%s kann die Waffe nicht loslassen! Sie ist verflucht!\r"
+};
+
+static const StringListProvider kEoB2ValidateCursedStringAmigaGermanProvider = { ARRAYSIZE(kEoB2ValidateCursedStringAmigaGerman), kEoB2ValidateCursedStringAmigaGerman };
+
+static const char *const kEoB2ValidateNoDropStringAmigaGerman[1] = {
+ "Diesen Gegenstand hier nicht ablegen.\r"
+};
+
+static const StringListProvider kEoB2ValidateNoDropStringAmigaGermanProvider = { ARRAYSIZE(kEoB2ValidateNoDropStringAmigaGerman), kEoB2ValidateNoDropStringAmigaGerman };
+
+static const char *const kEoB2PotionStringsAmigaGerman[2] = {
+ "vergiftet",
+ "%s f""\xfc""hlt sich %s!\r"
+};
+
+static const StringListProvider kEoB2PotionStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2PotionStringsAmigaGerman), kEoB2PotionStringsAmigaGerman };
+
+static const char *const kEoB2WandStringsAmigaGerman[1] = {
+ "Der Stab hat offenbar keinen magischen Effekt\r"
+};
+
+static const StringListProvider kEoB2WandStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2WandStringsAmigaGerman), kEoB2WandStringsAmigaGerman };
+
+static const char *const kEoB2ItemMisuseStringsAmigaGerman[3] = {
+ "%s kann diesen Gegenstand nicht nutzen.\r",
+ "Dieser Gegenstand wird automatisch beim Tragen benutzt.\r",
+ "Das kann man so nicht benutzen.\r"
+};
+
+static const StringListProvider kEoB2ItemMisuseStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemMisuseStringsAmigaGerman), kEoB2ItemMisuseStringsAmigaGerman };
+
+static const char *const kEoB2TakenStringsAmigaGerman[1] = {
+ " aufgenommen.\r"
+};
+
+static const StringListProvider kEoB2TakenStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2TakenStringsAmigaGerman), kEoB2TakenStringsAmigaGerman };
+
+static const char *const kEoB2PotionEffectStringsAmigaGerman[8] = {
+ "viel st""\xe4""rker",
+ "besser",
+ "viel besser",
+ "etwas krank",
+ "pappsatt",
+ "schnell und agil",
+ "transparent",
+ "besser"
+};
+
+static const StringListProvider kEoB2PotionEffectStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2PotionEffectStringsAmigaGerman), kEoB2PotionEffectStringsAmigaGerman };
+
+static const char *const kEoB2YesNoStringsAmigaGerman[2] = {
+ "ja",
+ "nein"
+};
+
+static const StringListProvider kEoB2YesNoStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2YesNoStringsAmigaGerman), kEoB2YesNoStringsAmigaGerman };
+
+static const char *const kEoB2MoreStringsAmigaGerman[1] = {
+ "MEHR"
+};
+
+static const StringListProvider kEoB2MoreStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MoreStringsAmigaGerman), kEoB2MoreStringsAmigaGerman };
+
+static const char *const kEoB2NpcMaxStringsAmigaGerman[1] = {
+ "Maximal sechs Charaktere pro Party. Wen wollt Ihr entlassen."
+};
+
+static const StringListProvider kEoB2NpcMaxStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2NpcMaxStringsAmigaGerman), kEoB2NpcMaxStringsAmigaGerman };
+
+static const char *const kEoB2OkStringsAmigaGerman[1] = {
+ "OK"
+};
+
+static const StringListProvider kEoB2OkStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2OkStringsAmigaGerman), kEoB2OkStringsAmigaGerman };
+
+static const char *const kEoB2NpcJoinStringsAmigaGerman[1] = {
+ "%s wird Partymitglied.\r"
+};
+
+static const StringListProvider kEoB2NpcJoinStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2NpcJoinStringsAmigaGerman), kEoB2NpcJoinStringsAmigaGerman };
+
+static const char *const kEoB2CancelStringsAmigaGerman[1] = {
+ "ABBR."
+};
+
+static const StringListProvider kEoB2CancelStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2CancelStringsAmigaGerman), kEoB2CancelStringsAmigaGerman };
+
+static const char *const kEoB2AbortStringsAmigaGerman[1] = {
+ "ABBR."
+};
+
+static const StringListProvider kEoB2AbortStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2AbortStringsAmigaGerman), kEoB2AbortStringsAmigaGerman };
+
+static const char *const kEoB2MenuStringsMainAmigaGerman[8] = {
+ "W""\xe4""hle Option:",
+ "Rasten",
+ "Spr""\xfc""che merken",
+ "Um Spr""\xfc""che beten",
+ "Rollen notieren",
+ "Voreinstellungen",
+ "Spieloptionen",
+ "Ende"
+};
+
+static const StringListProvider kEoB2MenuStringsMainAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsMainAmigaGerman), kEoB2MenuStringsMainAmigaGerman };
+
+static const char *const kEoB2MenuStringsSaveLoadAmigaGerman[8] = {
+ "Spiel laden",
+ "Spiel speichern",
+ "Charakter entl.",
+ "Beenden",
+ "Spieloptionen:",
+ "\r Gespeichert.",
+ "Speicherversuch\rfehlgeschlagen!",
+ "Ladeversuch\rfehlgeschlagen.\rEvtl. Disk-Error!"
+};
+
+static const StringListProvider kEoB2MenuStringsSaveLoadAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsSaveLoadAmigaGerman), kEoB2MenuStringsSaveLoadAmigaGerman };
+
+static const char *const kEoB2MenuStringsOnOffAmigaGerman[2] = {
+ "AN",
+ "AUS"
+};
+
+static const StringListProvider kEoB2MenuStringsOnOffAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsOnOffAmigaGerman), kEoB2MenuStringsOnOffAmigaGerman };
+
+static const char *const kEoB2MenuStringsSpellsAmigaGerman[17] = {
+ "\r\r W""\xe4""hlt einen Charak-\r ter aus der Party,\r der Spr""\xfc""che lernen\r soll.",
+ "\r Der Paladin ist\r eine Stufe zu nied-\r rig zum zaubern.",
+ "\r\r Der magier hat\r kein Spruchbuch!",
+ "\r\r\r W""\xe4""hlt einen Charak-\r ter aus der Party,\r der f""\xfc""r Spr""\xfc""che\r beten will.",
+ "\r Niemand in der\r Party ist in der\r Lage, f""\xfc""r Spr""\xfc""che\r zu beten.",
+ "\r Niemand in der\r Party ist in der\r Lage, sich Spr""\xfc""che\r zu merken.",
+ " Jemand der bewu""\xdf""t-\r los oder tot ist\r kann keine Spr""\xfc""che\r merken.",
+ " Jemand der bewu""\xdf""t-\r los oder tot ist\r kann nicht um\r Spr""\xfc""che beten.",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "Neu",
+ "Verf""\xfc""gbare Zauber:",
+ "Ja",
+ "Nein"
+};
+
+static const StringListProvider kEoB2MenuStringsSpellsAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsSpellsAmigaGerman), kEoB2MenuStringsSpellsAmigaGerman };
+
+static const char *const kEoB2MenuStringsRestAmigaGerman[5] = {
+ "\rWerden eure Heiler\rdie Party heilen?",
+ " Jemand ist noch\r verletzt. Weiter-\r rasten?",
+ "Die Party rastet.",
+ "\r Alle Spieler\r sind voll\r ausgeruht.",
+ " Eure Party braucht\r Rast, um Spr""\xfc""che\r zu erhalten."
+};
+
+static const StringListProvider kEoB2MenuStringsRestAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRestAmigaGerman), kEoB2MenuStringsRestAmigaGerman };
+
+static const char *const kEoB2MenuStringsDropAmigaGerman[1] = {
+ " Weniger als vier\r Charaktere sind\r nicht erlaubt."
+};
+
+static const StringListProvider kEoB2MenuStringsDropAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsDropAmigaGerman), kEoB2MenuStringsDropAmigaGerman };
+
+static const char *const kEoB2MenuStringsExitAmigaGerman[1] = {
+ " Ganz bestimmt\r das Spiel\r abbrechen?"
+};
+
+static const StringListProvider kEoB2MenuStringsExitAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsExitAmigaGerman), kEoB2MenuStringsExitAmigaGerman };
+
+static const char *const kEoB2MenuStringsStarveAmigaGerman[1] = {
+ " Eure Party hungert.\r Wollt Ihr weiter\r rasten?"
+};
+
+static const StringListProvider kEoB2MenuStringsStarveAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsStarveAmigaGerman), kEoB2MenuStringsStarveAmigaGerman };
+
+static const char *const kEoB2MenuStringsScribeAmigaGerman[5] = {
+ "W""\xe4""hlt die Rolle(n)\rzum notieren.",
+ "\r\r\r W""\xe4""hlt den Magier\r aus der Party,\r der Spr""\xfc""che\r notieren m""\xf6""chte.",
+ " Ihr habt keine\r ""\xfc""bertragbaren\r Schriftrollen.",
+ " Ihr habt keine\r Rollen, die dieser\r Magier braucht.",
+ "\r Ihr habt keinen\r Magier, der Rollen\r ""\xfc""bertragen kann."
+};
+
+static const StringListProvider kEoB2MenuStringsScribeAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsScribeAmigaGerman), kEoB2MenuStringsScribeAmigaGerman };
+
+static const char *const kEoB2MenuStringsDrop2AmigaGerman[3] = {
+ " W""\xe4""hlt den Charak-\r ter, den Ihr\r entfernen m""\xf6""chtet.",
+ " Spielst""\xe4""nde m""\xfc""ssen\r einen Namen haben!",
+ " Ganz sicher den\r alten Spielstand\r ""\xfc""berschreiben?"
+};
+
+static const StringListProvider kEoB2MenuStringsDrop2AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsDrop2AmigaGerman), kEoB2MenuStringsDrop2AmigaGerman };
+
+static const char *const kEoB2MenuStringsHeadAmigaGerman[3] = {
+ "Rast:",
+ "Voreinstellung:",
+ "Spieloptionen:"
+};
+
+static const StringListProvider kEoB2MenuStringsHeadAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsHeadAmigaGerman), kEoB2MenuStringsHeadAmigaGerman };
+
+static const char *const kEoB2MenuStringsPoisonAmigaGerman[1] = {
+ "Vergiftete Spieler\rk""\xf6""nnten sterben!\rTrotzdem rasten?"
+};
+
+static const StringListProvider kEoB2MenuStringsPoisonAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsPoisonAmigaGerman), kEoB2MenuStringsPoisonAmigaGerman };
+
+static const char *const kEoB2MenuStringsMgcAmigaGerman[2] = {
+ "%-18s %1d",
+ "%d von %d verf""\xfc""gbar. "
+};
+
+static const StringListProvider kEoB2MenuStringsMgcAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsMgcAmigaGerman), kEoB2MenuStringsMgcAmigaGerman };
+
+static const char *const kEoB2MenuStringsPrefsAmigaGerman[4] = {
+ "Musik ist %-3s",
+ "FX sind %-3s",
+ "Balkengrafik: %-3s",
+ ""
+};
+
+static const StringListProvider kEoB2MenuStringsPrefsAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsPrefsAmigaGerman), kEoB2MenuStringsPrefsAmigaGerman };
+
+static const char *const kEoB2MenuStringsRest2AmigaGerman[5] = {
+ "%s erhielt %s.\r",
+ "%s merkt sich %s.\r",
+ "%s heilt %s.\r",
+ "Raststunden: %-4d ",
+ "\r%s\r"
+};
+
+static const StringListProvider kEoB2MenuStringsRest2AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRest2AmigaGerman), kEoB2MenuStringsRest2AmigaGerman };
+
+static const char *const kEoB2MenuStringsRest3AmigaGerman[1] = {
+ "\x06\x06""Es scheint, als sei es nicht sicher hier zu rasten."
+};
+
+static const StringListProvider kEoB2MenuStringsRest3AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRest3AmigaGerman), kEoB2MenuStringsRest3AmigaGerman };
+
+static const char *const kEoB2MenuStringsRest4AmigaGerman[1] = {
+ "\x06\x06""In der N""\xe4""he von Monstern k""\xf6""nnt Ihr nicht rasten."
+};
+
+static const StringListProvider kEoB2MenuStringsRest4AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRest4AmigaGerman), kEoB2MenuStringsRest4AmigaGerman };
+
+static const char *const kEoB2MenuStringsDefeatAmigaGerman[1] = {
+ "\rDie gesamte Party\rwurde besiegt!\rEinen alten Spiel-\rstand laden?"
+};
+
+static const StringListProvider kEoB2MenuStringsDefeatAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsDefeatAmigaGerman), kEoB2MenuStringsDefeatAmigaGerman };
+
+static const char *const kEoB2MenuStringsTransferAmigaGerman[5] = {
+ "Mindestens vier\rSpieler vor Spiel-\rbeginn transferieren!",
+ "Nur vier Spieler\rtransferieren!",
+ "Bestimmte Habselig-\rkeiten werden\rgel""\xf6""scht.",
+ " \r Kein Magier in\r der Party.",
+ " \r Kein Kleriker\r oder Paladin\r in der Party."
+};
+
+static const StringListProvider kEoB2MenuStringsTransferAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsTransferAmigaGerman), kEoB2MenuStringsTransferAmigaGerman };
+
+static const char *const kEoB2MenuStringsSpecAmigaGerman[2] = {
+ "Beim Aufwachen bem-\rerkt Ihr die Ab-\rwesenheit von Insal!",
+ "Eine kurzer Blick\rzeigt, das Ausr""\xfc""st-\rung gestohlen wurde!"
+};
+
+static const StringListProvider kEoB2MenuStringsSpecAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsSpecAmigaGerman), kEoB2MenuStringsSpecAmigaGerman };
+
+static const char *const kEoB2MenuYesNoStringsAmigaGerman[2] = {
+ "Ja",
+ "Nein"
+};
+
+static const StringListProvider kEoB2MenuYesNoStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuYesNoStringsAmigaGerman), kEoB2MenuYesNoStringsAmigaGerman };
+
+static const char *const kEoB2CharGuiStringsHpAmigaGerman[2] = {
+ "TP",
+ "%3d / %-3d"
+};
+
+static const StringListProvider kEoB2CharGuiStringsHpAmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsHpAmigaGerman), kEoB2CharGuiStringsHpAmigaGerman };
+
+static const char *const kEoB2CharGuiStringsWp2AmigaGerman[3] = {
+ "WUSCH",
+ "HACK",
+ "FATZ"
+};
+
+static const StringListProvider kEoB2CharGuiStringsWp2AmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsWp2AmigaGerman), kEoB2CharGuiStringsWp2AmigaGerman };
+
+static const char *const kEoB2CharGuiStringsWrAmigaGerman[4] = {
+ " ZU ",
+ "WEIT",
+ "OHNE",
+ "MUN"
+};
+
+static const StringListProvider kEoB2CharGuiStringsWrAmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsWrAmigaGerman), kEoB2CharGuiStringsWrAmigaGerman };
+
+static const char *const kEoB2CharGuiStringsSt2AmigaGerman[7] = {
+ "TAUSCHE",
+ "TOT",
+ "BEWUSSTLOS",
+ "GIFT (LANGSAM)",
+ "VERGIFTET",
+ "BET""\xc4""UBT",
+ "AUS STEIN"
+};
+
+static const StringListProvider kEoB2CharGuiStringsSt2AmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsSt2AmigaGerman), kEoB2CharGuiStringsSt2AmigaGerman };
+
+static const char *const kEoB2CharGuiStringsInAmigaGerman[4] = {
+ "CHARAKTER INFO",
+ "R""\xdc""STUNGSKL.",
+ "ERF",
+ "STF"
+};
+
+static const StringListProvider kEoB2CharGuiStringsInAmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsInAmigaGerman), kEoB2CharGuiStringsInAmigaGerman };
+
+static const char *const kEoB2CharStatusStrings7AmigaGerman[1] = {
+ "%s hat nicht l""\xe4""nger riesenkr""\xe4""fte.\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings7AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings7AmigaGerman), kEoB2CharStatusStrings7AmigaGerman };
+
+static const char *const kEoB2CharStatusStrings82AmigaGerman[1] = {
+ "\x06\x06""%s f""\xfc""hlt Gift in sich!\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings82AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings82AmigaGerman), kEoB2CharStatusStrings82AmigaGerman };
+
+static const char *const kEoB2CharStatusStrings9AmigaGerman[1] = {
+ "\x06\x04""%s ist nicht l""\xe4""nger bet""\xe4""ubt!\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings9AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings9AmigaGerman), kEoB2CharStatusStrings9AmigaGerman };
+
+static const char *const kEoB2CharStatusStrings12AmigaGerman[1] = {
+ "%s wird langsamer.\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings12AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings12AmigaGerman), kEoB2CharStatusStrings12AmigaGerman };
+
+static const char *const kEoB2CharStatusStrings132AmigaGerman[1] = {
+ "\x06\x06""%s %s!\r"
+};
+
+static const StringListProvider kEoB2CharStatusStrings132AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings132AmigaGerman), kEoB2CharStatusStrings132AmigaGerman };
+
+static const char *const kEoB2LevelGainStringsAmigaGerman[1] = {
+ "\x06\x01""%s steigt eine Stufe auf.""\x06\x0f""\r"
+};
+
+static const StringListProvider kEoB2LevelGainStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2LevelGainStringsAmigaGerman), kEoB2LevelGainStringsAmigaGerman };
+
+static const char *const kEoB2BookNumbersAmigaGerman[5] = {
+ "Erste",
+ "Zweite",
+ "Dritte",
+ "Vierte",
+ "F""\xfc""nfte"
+};
+
+static const StringListProvider kEoB2BookNumbersAmigaGermanProvider = { ARRAYSIZE(kEoB2BookNumbersAmigaGerman), kEoB2BookNumbersAmigaGerman };
+
+static const char *const kEoB2MageSpellsListAmigaGerman[33] = {
+ "",
+ "Panzer",
+ "Brennende H""\xe4""nde",
+ "Magie entdecken",
+ "Magisch. Geschoss",
+ "Schild",
+ "Schockgriff",
+ "Verschwimmen",
+ "Unsichtb. entd.",
+ "Identifiziern+",
+ "Unsichtbarkeit",
+ "M's S""\xe4""urepfeil",
+ "Magie bannen",
+ "Feuerball",
+ "Hast",
+ "Person halten",
+ "Unsichtb. 3m",
+ "Blitzstrahl",
+ "Vampirgriff",
+ "Furcht",
+ "Eissturm",
+ "Unsichtbarkeit+",
+ "Fluch brechen",
+ "K""\xe4""ltekegel",
+ "Monster halten",
+ "Kraftfeld",
+ "Aufl""\xf6""sung",
+ "Fleisch zu Stein",
+ "Stein zu Fleisch",
+ "Wahrer Blick",
+ "Todesfinger",
+ "Wort:Bet""\xe4""ubung",
+ "Bigbys Faust"
+};
+
+static const StringListProvider kEoB2MageSpellsListAmigaGermanProvider = { ARRAYSIZE(kEoB2MageSpellsListAmigaGerman), kEoB2MageSpellsListAmigaGerman };
+
+static const char *const kEoB2ClericSpellsListAmigaGerman[30] = {
+ "",
+ "Segen",
+ "Leicht verwunden",
+ "L. Wunden heilen",
+ "Magie entdecken",
+ "Schutz v. B""\xf6""sem",
+ "St""\xe4""rkung",
+ "Flammenklinge",
+ "Person halten",
+ "Gift verlangs.",
+ "Nahr. erschaffen",
+ "Magie bannen",
+ "Schutzgewand",
+ "Gebet",
+ "L""\xe4""hmung aufheben",
+ "Schwer verwunden",
+ "S. Wunden heilen",
+ "Gift neutr.",
+ "Schutz-B""\xf6""ses 3m",
+ "Kritisch verw.",
+ "K. Wunden heilen",
+ "Flammenschlag",
+ "Tote erwecken",
+ "Schneller Tod",
+ "Wahrer Blick",
+ "Leid",
+ "Heilung",
+ "Auferstehung",
+ "Handauflegen",
+ "Untote abwenden"
+};
+
+static const StringListProvider kEoB2ClericSpellsListAmigaGermanProvider = { ARRAYSIZE(kEoB2ClericSpellsListAmigaGerman), kEoB2ClericSpellsListAmigaGerman };
+
+static const char *const kEoB2SpellNamesAmigaGerman[68] = {
+ "panzer",
+ "brennende H""\xe4""nde",
+ "magie entdecken",
+ "magisches Geschoss",
+ "schild",
+ "schockgriff",
+ "verschwimmen",
+ "unsichtbares entdecken",
+ "verbessertes identifizieren",
+ "unsichtbarkeit",
+ "melfs S""\xe4""urepfeil",
+ "magie bannen",
+ "feuerball",
+ "hast",
+ "person halten",
+ "unsichtbarkeit 3m",
+ "blitzschlag",
+ "vampirgriff",
+ "furcht",
+ "eissturm",
+ "verbesserte Unsichtbarkeit",
+ "fluch brechen",
+ "k""\xe4""ltekegel",
+ "monster halten",
+ "kraftfeld",
+ "aufl""\xf6""sung",
+ "fleisch zu stein",
+ "stein zu fleisch",
+ "wahrer Blick",
+ "Todesfinger",
+ "wort der Macht: Bet""\xe4""ubung",
+ "bigbys geballte Faust",
+ "segen",
+ "leichte Wunden verursachen",
+ "leichte Wunden heilen",
+ "magie entdecken",
+ "schutz vor B""\xf6""sem",
+ "st""\xe4""rkung",
+ "flammenklinge",
+ "person halten",
+ "gift verlangsamen",
+ "nahrung erschaffen",
+ "magie bannen",
+ "schutzgewand",
+ "gebet",
+ "l""\xe4""hmung aufheben",
+ "schwere wunden verursachen",
+ "schwere wunden heilen",
+ "gift neutralisieren",
+ "schutz vor b""\xf6""sem 3m",
+ "kritische wunden verursachen",
+ "kritische wunden heilen",
+ "flammenschlag",
+ "tote erwecken",
+ "schneller tot",
+ "wahrer blick",
+ "leid",
+ "heilung",
+ "auferstehung",
+ "hand auflegen",
+ "untote abwenden",
+ "",
+ "mystische abwehr",
+ "",
+ "",
+ "",
+ "",
+ ""
+};
+
+static const StringListProvider kEoB2SpellNamesAmigaGermanProvider = { ARRAYSIZE(kEoB2SpellNamesAmigaGerman), kEoB2SpellNamesAmigaGerman };
+
+static const char *const kEoB2MagicStrings1AmigaGerman[6] = {
+ "ABBRECHEN",
+ "ABBRECHEN",
+ "Man braucht eine freie Hand f""\xfc""r diesen Zauber.\r",
+ "Von diesen Zaubern kann man nur einen aktivieren.\r",
+ "%s zaubert %s.\r",
+ "\rok\r"
+};
+
+static const StringListProvider kEoB2MagicStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings1AmigaGerman), kEoB2MagicStrings1AmigaGerman };
+
+static const char *const kEoB2MagicStrings2AmigaGerman[5] = {
+ "Der Zauber versagt!\r",
+ "%s wurde aufgel""\xf6""st!\r",
+ "\x06\x06""Die Party wurde von einem Todeszauber getroffen!\r",
+ "\x06\x06""%s wurde von einem schwer verwunden Zauber getroffen.\r",
+ "AUS STEIN"
+};
+
+static const StringListProvider kEoB2MagicStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings2AmigaGerman), kEoB2MagicStrings2AmigaGerman };
+
+static const char *const kEoB2MagicStrings3AmigaGerman[5] = {
+ "Wen verzaubern? ",
+ "\rSpruch abgebrochen.\r",
+ "%s's %s Zauber l""\xe4""sst nach.\r",
+ "%s verfehlt das Monster.\r",
+ "%s muss vorn stehen um zu treffen!\r"
+};
+
+static const StringListProvider kEoB2MagicStrings3AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings3AmigaGerman), kEoB2MagicStrings3AmigaGerman };
+
+static const char *const kEoB2MagicStrings4AmigaGerman[1] = {
+ "keine Wirkung.\r"
+};
+
+static const StringListProvider kEoB2MagicStrings4AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings4AmigaGerman), kEoB2MagicStrings4AmigaGerman };
+
+static const char *const kEoB2MagicStrings6AmigaGerman[1] = {
+ "%s hat schon eine R""\xfc""stungklasse ""\xfc""ber 6."
+};
+
+static const StringListProvider kEoB2MagicStrings6AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings6AmigaGerman), kEoB2MagicStrings6AmigaGerman };
+
+static const char *const kEoB2MagicStrings7AmigaGerman[2] = {
+ "%s steht schon unter dem effekt eines %s spruches.\r",
+ "die party steht schon unter dem effekt eines %s spruches.\r"
+};
+
+static const StringListProvider kEoB2MagicStrings7AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings7AmigaGerman), kEoB2MagicStrings7AmigaGerman };
+
+static const char *const kEoB2MagicStrings8AmigaGerman[6] = {
+ "Der Zauber versagt!\r",
+ "ist gel""\xe4""hmt",
+ "Der Zauber versagt!\r",
+ "Der Zauber versagt!\r",
+ "Kein Monster in Reichweite!\r",
+ "%s steht bereits unter einem St""\xe4""rkungszauber.\r"
+};
+
+static const StringListProvider kEoB2MagicStrings8AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings8AmigaGerman), kEoB2MagicStrings8AmigaGerman };
+
+static const byte kEoB2ManDefAmigaGerman[200] = {
+ 0x09, 0x01, 0x03, 0x00, 0x09, 0x01, 0x06, 0x00,
+ 0x09, 0x02, 0x07, 0x00, 0x14, 0x01, 0x01, 0x00,
+ 0x14, 0x02, 0x01, 0x00, 0x14, 0x04, 0x02, 0x00,
+ 0x1A, 0x01, 0x03, 0x00, 0x1A, 0x02, 0x02, 0x00,
+ 0x1A, 0x07, 0x04, 0x00, 0x15, 0x01, 0x02, 0x00,
+ 0x15, 0x01, 0x05, 0x00, 0x15, 0x02, 0x01, 0x00,
+ 0x15, 0x03, 0x04, 0x00, 0x15, 0x04, 0x01, 0x00,
+ 0x15, 0x05, 0x05, 0x00, 0x23, 0x01, 0x02, 0x00,
+ 0x23, 0x01, 0x05, 0x00, 0x23, 0x02, 0x03, 0x00,
+ 0x23, 0x03, 0x01, 0x00, 0x23, 0x06, 0x03, 0x00,
+ 0x23, 0x0A, 0x06, 0x00, 0x26, 0x01, 0x01, 0x00,
+ 0x26, 0x01, 0x03, 0x00, 0x26, 0x01, 0x05, 0x00,
+ 0x26, 0x02, 0x04, 0x00, 0x26, 0x03, 0x02, 0x00,
+ 0x26, 0x04, 0x01, 0x00, 0x17, 0x01, 0x02, 0x00,
+ 0x17, 0x01, 0x04, 0x00, 0x17, 0x01, 0x05, 0x00,
+ 0x17, 0x02, 0x02, 0x00, 0x17, 0x03, 0x03, 0x00,
+ 0x17, 0x07, 0x01, 0x00, 0x12, 0x01, 0x02, 0x00,
+ 0x12, 0x01, 0x07, 0x00, 0x12, 0x03, 0x01, 0x00,
+ 0x12, 0x04, 0x02, 0x00, 0x12, 0x05, 0x02, 0x00,
+ 0x12, 0x06, 0x05, 0x00, 0x12, 0x07, 0x03, 0x00,
+ 0x12, 0x08, 0x01, 0x00, 0x1F, 0x01, 0x05, 0x00,
+ 0x1F, 0x02, 0x06, 0x00, 0x1F, 0x03, 0x02, 0x00,
+ 0x1F, 0x03, 0x01, 0x00, 0x1F, 0x04, 0x01, 0x00,
+ 0x1F, 0x04, 0x03, 0x00, 0x1C, 0x01, 0x01, 0x00,
+ 0x1C, 0x01, 0x03, 0x00, 0x1C, 0x02, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2ManDefAmigaGermanProvider = { ARRAYSIZE(kEoB2ManDefAmigaGerman), kEoB2ManDefAmigaGerman };
+
+static const char *const kEoB2ManWordAmigaGerman[51] = {
+ "teil",
+ "geht",
+ "maus",
+ "um",
+ "einer",
+ "kann",
+ "das",
+ "schalter",
+ "der",
+ "einem",
+ "gnome",
+ "magieresistent",
+ "intelligenz",
+ "weisheit",
+ "dieb",
+ "weiter",
+ "setzen",
+ "ein",
+ "magier",
+ "diese",
+ "sind",
+ "eines",
+ "wodurch",
+ "schwerer",
+ "gute",
+ "bonus",
+ "bogen",
+ "und",
+ "dadurch",
+ "oft",
+ "raubt",
+ "keine",
+ "schrift",
+ "waffen",
+ "unterteilt",
+ "vordersten",
+ "nur",
+ "sie",
+ "klassen",
+ "zeigt",
+ "gegen",
+ "mausknopf",
+ "nahrungsbalken",
+ "charakters",
+ "des",
+ "um",
+ "gegenstand",
+ "durch",
+ "spruch",
+ "unsichtbar",
+ ""
+};
+
+static const StringListProvider kEoB2ManWordAmigaGermanProvider = { ARRAYSIZE(kEoB2ManWordAmigaGerman), kEoB2ManWordAmigaGerman };
+
+static const char *const kEoB2ManPromptAmigaGerman[1] = {
+ "\r\r\r\rAuf der Seite mit diesem Symbol...\r\rFinde Zeile %d\rGib Wort %d ein\r"
+};
+
+static const StringListProvider kEoB2ManPromptAmigaGermanProvider = { ARRAYSIZE(kEoB2ManPromptAmigaGerman), kEoB2ManPromptAmigaGerman };
+
+static const char *const kEoB2MainMenuStringsAmigaGerman[5] = {
+ "ALTES SPIEL LADEN\r",
+ "NEUE PARTY ERSTELLEN\r",
+ "EOB I PARTY TRANSFER\r",
+ "INTRO ANSEHEN\r",
+ "FORMATIEREN\r"
+};
+
+static const StringListProvider kEoB2MainMenuStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MainMenuStringsAmigaGerman), kEoB2MainMenuStringsAmigaGerman };
+
+static const char *const kEoB2TransferStrings1AmigaGerman[2] = {
+ "Stufe: %d",
+ " / %d"
+};
+
+static const StringListProvider kEoB2TransferStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB2TransferStrings1AmigaGerman), kEoB2TransferStrings1AmigaGerman };
+
+static const char *const kEoB2TransferStrings2AmigaGerman[2] = {
+ "Dieses Abenteuer ist nur f""\xfc""r vier Charaktere.",
+ "OK w""\xe4""hlen, wenn Partyerstellung beendet."
+};
+
+static const StringListProvider kEoB2TransferStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB2TransferStrings2AmigaGerman), kEoB2TransferStrings2AmigaGerman };
+
+static const char *const kEoB2TransferLabelsAmigaGerman[2] = {
+ "ABBR.",
+ "OK"
+};
+
+static const StringListProvider kEoB2TransferLabelsAmigaGermanProvider = { ARRAYSIZE(kEoB2TransferLabelsAmigaGerman), kEoB2TransferLabelsAmigaGerman };
+
+static const char *const kEoB2IntroStringsAmigaGerman[20] = {
+ "Ihr hattet euch gerade gem""\xfc""tlich am \rKamin niedergelassen.",
+ "Da wurde euch eine Botschaft\rzugespielt.",
+ "Sie war von eurem Freund Khelben \rBlackstaff, dem Erzmagier der Stadt.",
+ "Die Mitteilung war dringend.",
+ "Was konnte Khelben nur wollen?",
+ "Willkommen, bitte tretet ein.",
+ "Khelben erwartet euch im Studierzimmer.",
+ "Danke f""\xfc""r euer schnelles Kommen.",
+ "Meine Freunde, ich bin besorgt.",
+ "Uralte, b""\xf6""se M""\xe4""chte rumoren im \rTempel Darkmoon.",
+ "Ich f""\xfc""rchte um die Sicherheit \runserer Stadt.",
+ "Ich brauche eure Hilfe...",
+ "Vor drei N""\xe4""chten \rentsandte ich einen Kundschafter.",
+ "Sie kam niemals zur""\xfc""ck.",
+ "Ich f""\xfc""rchte um ihr Leben.",
+ "Nehmt diese M""\xfc""nze.",
+ "Mit ihrer Hilfe werde \rich euch erreichen.",
+ "Ihr m""\xfc\xdf""t schnell handeln.",
+ "Ich teleportiere euch nun in \rdie N""\xe4""he von Darkmoon.",
+ "M""\xf6""ge das Gl""\xfc""ck auf eurer Seite\rsein, Freunde."
+};
+
+static const StringListProvider kEoB2IntroStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2IntroStringsAmigaGerman), kEoB2IntroStringsAmigaGerman };
+
+static const char *const kEoB2IntroCPSFilesAmigaGerman[16] = {
+ "STREET1.CPS",
+ "STREET2.CPS",
+ "DOORWAY1.CPS",
+ "DOORWAY2.CPS",
+ "WESTWOOD1.CPS",
+ "WINDING.CPS",
+ "KHELBAN2.CPS",
+ "KHELBAN1.CPS",
+ "KHELBAN3.CPS",
+ "KHELBAN4.CPS",
+ "COIN.CPS",
+ "KHELBAN5.CPS",
+ "KHELBAN6.CPS",
+ "WESTWOOD1.CPS",
+ "WESTWOOD3.CPS",
+ "WESTWOOD3.CPS"
+};
+
+static const StringListProvider kEoB2IntroCPSFilesAmigaGermanProvider = { ARRAYSIZE(kEoB2IntroCPSFilesAmigaGerman), kEoB2IntroCPSFilesAmigaGerman };
+
+static const char *const kEoB2FinaleStringsAmigaGerman[20] = {
+ "Nun endlich wurde Dran besiegt.",
+ "Pl""\xf6""tzlich erscheint euer Freund \rKhelben.",
+ "Seid gegr""\xfc\xdf""t, meine siegreichen \rFreunde.",
+ "Ihr seid die Bezwinger von Dran!",
+ "Ich hatte keine Ahnung, da""\xdf"" \rDran ein Drache war.",
+ "Er mu""\xdf"" ""\xfc""ber 300 Jahre alt \rgewesen sein!",
+ "Seine Macht ist vergangen.",
+ "Noch immer ist Darkmoon\reine Quelle des B""\xf6""sen.",
+ "Und ein Teil seines Gefolges\rexistiert noch.",
+ "Daher m""\xfc""ssen wir diesen Platz\rnun verlassen.",
+ "So da""\xdf"" meine Kr""\xe4""fte ihn ein\r f""\xfc""r allemal\rzerst""\xf6""ren k""\xf6""nnen.",
+ "Folgt mir.",
+ "M""\xe4""chtige Magier sind bereit\rf""\xfc""r den letzten Schlag\rgegen Darkmoon.",
+ "Das B""\xf6""se im Tempel ist sehr stark.",
+ "Es darf keinesfalls weiter\rbestehen!",
+ "Der Tempel h""\xf6""rt auf zu\rexistieren.",
+ "Unsere Arbeit ist nun getan,\rmeine Freunde.",
+ "Seid bedankt.",
+ "Ihr habt Euch meinen tiefen\r Respekt erk""\xe4""mpft.",
+ "Wir werden Euch nie vergessen."
+};
+
+static const StringListProvider kEoB2FinaleStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2FinaleStringsAmigaGerman), kEoB2FinaleStringsAmigaGerman };
+
+static const char *const kEoB2FinaleCPSFilesAmigaGerman[13] = {
+ "DRAGON1.CPS",
+ "DRAGON2.CPS",
+ "HURRY1.CPS",
+ "HURRY2.CPS",
+ "DESTROY0.CPS",
+ "DESTROY1.CPS",
+ "DESTROY2.CPS",
+ "MAGIC.CPS",
+ "DESTROY3.CPS",
+ "CREDITS2.CPS",
+ "CREDITS3.CPS",
+ "HEROES.CPS",
+ "THANKS.CPS"
+};
+
+static const StringListProvider kEoB2FinaleCPSFilesAmigaGermanProvider = { ARRAYSIZE(kEoB2FinaleCPSFilesAmigaGerman), kEoB2FinaleCPSFilesAmigaGerman };
+
+static const char *const kEoB2MonsterDistAttStringsAmigaGerman[5] = {
+ "Die Party wurde von einem psychischen Angriff getroffen!\r",
+ "paralysiert",
+ "vergiftet",
+ "bet""\xe4""ubt",
+ "versteinert"
+};
+
+static const StringListProvider kEoB2MonsterDistAttStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MonsterDistAttStringsAmigaGerman), kEoB2MonsterDistAttStringsAmigaGerman };
+
+static const char *const kEoB2Npc1StringsAmigaGerman[2] = {
+ "reden",
+ "weiter"
+};
+
+static const StringListProvider kEoB2Npc1StringsAmigaGermanProvider = { ARRAYSIZE(kEoB2Npc1StringsAmigaGerman), kEoB2Npc1StringsAmigaGerman };
+
+static const char *const kEoB2Npc2StringsAmigaGerman[2] = {
+ "freilassen",
+ "weiterziehen"
+};
+
+static const StringListProvider kEoB2Npc2StringsAmigaGermanProvider = { ARRAYSIZE(kEoB2Npc2StringsAmigaGerman), kEoB2Npc2StringsAmigaGerman };
+
+static const char *const kEoB2MonsterDustStringsAmigaGerman[1] = {
+ "Das Monster vergeht zu staub!\r"
+};
+
+static const StringListProvider kEoB2MonsterDustStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MonsterDustStringsAmigaGerman), kEoB2MonsterDustStringsAmigaGerman };
+
+static const char *const kEoB2KheldranStringsAmigaGerman[1] = {
+ " Diese Narren!"
+};
+
+static const StringListProvider kEoB2KheldranStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2KheldranStringsAmigaGerman), kEoB2KheldranStringsAmigaGerman };
+
+static const char *const kEoB2HornStringsAmigaGerman[4] = {
+ "Ein br""\xfc""llendes Ger""\xe4""usch kommt aus dem Horn.\r",
+ "Ein hohler Ton dringt aus dem Horn.\r",
+ "Ein melodischer Ton klingt aus dem Horn.\r",
+ "Ein unheimliches Ger""\xe4""usch entweicht dem Horn.\r"
+};
+
+static const StringListProvider kEoB2HornStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2HornStringsAmigaGerman), kEoB2HornStringsAmigaGerman };
+
diff --git a/devtools/create_kyradat/resources/eob2_dos_english.h b/devtools/create_kyradat/resources/eob2_dos_english.h
index 3fdf26d664..fb82783c93 100644
--- a/devtools/create_kyradat/resources/eob2_dos_english.h
+++ b/devtools/create_kyradat/resources/eob2_dos_english.h
@@ -556,7 +556,7 @@ static const char *const kEoB2CharStatusStrings82DOSEnglish[1] = {
static const StringListProvider kEoB2CharStatusStrings82DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings82DOSEnglish), kEoB2CharStatusStrings82DOSEnglish };
static const char *const kEoB2CharStatusStrings9DOSEnglish[1] = {
- "%s is no longer paralyzed!\r"
+ "\x06\x04""%s is no longer paralyzed!\r"
};
static const StringListProvider kEoB2CharStatusStrings9DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings9DOSEnglish), kEoB2CharStatusStrings9DOSEnglish };
diff --git a/devtools/create_kyradat/resources/eob2_dos_german.h b/devtools/create_kyradat/resources/eob2_dos_german.h
index 6445d132e8..ef9199dc7c 100644
--- a/devtools/create_kyradat/resources/eob2_dos_german.h
+++ b/devtools/create_kyradat/resources/eob2_dos_german.h
@@ -516,7 +516,7 @@ static const char *const kEoB2CharGuiStringsWp2DOSGerman[3] = {
static const StringListProvider kEoB2CharGuiStringsWp2DOSGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsWp2DOSGerman), kEoB2CharGuiStringsWp2DOSGerman };
static const char *const kEoB2CharGuiStringsWrDOSGerman[4] = {
- "ZU",
+ " ZU ",
"WEIT",
"OHNE",
"MUN"
@@ -558,7 +558,7 @@ static const char *const kEoB2CharStatusStrings82DOSGerman[1] = {
static const StringListProvider kEoB2CharStatusStrings82DOSGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings82DOSGerman), kEoB2CharStatusStrings82DOSGerman };
static const char *const kEoB2CharStatusStrings9DOSGerman[1] = {
- "%s ist nicht l""\x84""nger bet""\x84""ubt!\r"
+ "\x06\x04""%s ist nicht l""\x84""nger bet""\x84""ubt!\r"
};
static const StringListProvider kEoB2CharStatusStrings9DOSGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings9DOSGerman), kEoB2CharStatusStrings9DOSGerman };
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index 20114e58ac..4c651221c0 100644
--- a/dists/engine-data/kyra.dat
+++ b/dists/engine-data/kyra.dat
Binary files differ
diff --git a/engines/kyra/resource/resource.h b/engines/kyra/resource/resource.h
index 02415cf4ff..cbd442fcc1 100644
--- a/engines/kyra/resource/resource.h
+++ b/engines/kyra/resource/resource.h
@@ -492,9 +492,9 @@ enum KyraResources {
kEoBBaseSoundFilesIntro,
kEoBBaseSoundFilesIngame,
kEoBBaseSoundFilesFinale,
+ kEoBBaseLevelSounds1,
+ kEoBBaseLevelSounds2,
- kEoB1BaseLevelSounds1,
- kEoB1BaseLevelSounds2,
kEoB1MainMenuStrings,
kEoB1BonusStrings,
@@ -632,6 +632,9 @@ enum KyraResources {
kEoB2IntroShapes01,
kEoB2IntroShapes04,
kEoB2IntroShapes07,
+ kEoB2IntroShapes13,
+ kEoB2IntroShapes14,
+ kEoB2IntroShapes15,
kEoB2FinaleStrings,
kEoB2CreditsData,
@@ -930,6 +933,12 @@ enum KyraResources {
kEoB2PcmSoundEffectsIntro,
kEoB2PcmSoundEffectsFinale,
+ kEoB2SoundMapExtra,
+ kEoB2SoundIndex1,
+ kEoB2SoundIndex2,
+ kEoB2SoundFilesIngame2,
+ kEoB2MonsterSoundPatchData,
+
kLoLIngamePakFiles,
kLoLCharacterDefs,
kLoLIngameSfxFiles,
diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp
index e569cf1479..fcf3158f5e 100644
--- a/engines/kyra/resource/staticres.cpp
+++ b/engines/kyra/resource/staticres.cpp
@@ -39,7 +39,7 @@
namespace Kyra {
-#define RESFILE_VERSION 93
+#define RESFILE_VERSION 94
namespace {
bool checkKyraDat(Common::SeekableReadStream *file) {
diff --git a/engines/kyra/resource/staticres_eob.cpp b/engines/kyra/resource/staticres_eob.cpp
index 7ff439d202..a75c464573 100644
--- a/engines/kyra/resource/staticres_eob.cpp
+++ b/engines/kyra/resource/staticres_eob.cpp
@@ -24,6 +24,8 @@
#include "kyra/resource/resource.h"
#include "kyra/sound/sound_intern.h"
+#include "common/memstream.h"
+
namespace Kyra {
@@ -1390,18 +1392,19 @@ void DarkMoonEngine::initSpells() {
EoBCoreEngine::initSpells();
int temp;
- const uint8 *src = _staticres->loadRawData(kEoBBaseSpellProperties, temp);
+ const uint8 *data = _staticres->loadRawData(kEoBBaseSpellProperties, temp);
+ Common::MemoryReadStreamEndian *src = new Common::MemoryReadStreamEndian(data, temp, _flags.platform == Common::kPlatformAmiga);
for (int i = 0; i < _numSpells; i++) {
EoBSpell *s = &_spells[i];
- src += 8;
- s->flags = READ_LE_UINT16(src);
- src += 10;
- s->sound = *src++;
- s->effectFlags = READ_LE_UINT32(src);
- src += 4;
- s->damageFlags = READ_LE_UINT16(src);
- src += 2;
+ src->skip(8);
+ s->flags = src->readUint16();
+ src->skip(8);
+ s->sound = src->readByte();
+ if (_flags.platform == Common::kPlatformAmiga)
+ src->skip(1);
+ s->effectFlags = src->readUint32();
+ s->damageFlags = src->readUint16();
}
}
diff --git a/engines/kyra/sequence/sequences_darkmoon.cpp b/engines/kyra/sequence/sequences_darkmoon.cpp
index 56bcbba633..c1fd9e6f69 100644
--- a/engines/kyra/sequence/sequences_darkmoon.cpp
+++ b/engines/kyra/sequence/sequences_darkmoon.cpp
@@ -833,11 +833,11 @@ void DarkMoonEngine::seq_playFinale() {
snd_playSong(_flags.platform == Common::kPlatformFMTowns ? 16 : 1);
int temp = 0;
- const uint8 *creditsData = (_flags.platform == Common::kPlatformFMTowns) ? _res->fileData("CREDITS.TXT", 0) : _staticres->loadRawData(kEoB2CreditsData, temp);
+ const uint8 *creditsData = (_flags.platform != Common::kPlatformDOS) ? _res->fileData("CREDITS.TXT", 0) : _staticres->loadRawData(kEoB2CreditsData, temp);
seq_playCredits(&sq, creditsData, 18, 2, 6, 2);
- if (_flags.platform == Common::kPlatformFMTowns)
+ if (_flags.platform != Common::kPlatformDOS)
delete[] creditsData;
sq.delay(90);
diff --git a/engines/kyra/sound/sound_amiga_eob.cpp b/engines/kyra/sound/sound_amiga_eob.cpp
index d2cf976ec9..eccf380a69 100644
--- a/engines/kyra/sound/sound_amiga_eob.cpp
+++ b/engines/kyra/sound/sound_amiga_eob.cpp
@@ -52,8 +52,8 @@ bool SoundAmiga_EoB::init() {
return false;
int temp = 0;
- _levelSoundList1 = _vm->staticres()->loadStrings(kEoB1BaseLevelSounds1, temp);
- _levelSoundList2 = _vm->staticres()->loadStrings(kEoB1BaseLevelSounds2, temp);
+ _levelSoundList1 = _vm->staticres()->loadStrings(kEoBBaseLevelSounds1, temp);
+ _levelSoundList2 = _vm->staticres()->loadStrings(kEoBBaseLevelSounds2, temp);
_ready = true;
return true;