diff options
-rw-r--r-- | devtools/create_kyradat/create_kyradat.cpp | 27 | ||||
-rw-r--r-- | devtools/create_kyradat/create_kyradat.h | 25 | ||||
-rw-r--r-- | devtools/create_kyradat/games.cpp | 51 | ||||
-rw-r--r-- | devtools/create_kyradat/resources.cpp | 270 | ||||
-rw-r--r-- | devtools/create_kyradat/resources/eob1_pc98.h | 1868 | ||||
-rw-r--r-- | devtools/create_kyradat/resources/eob1_pc98_japanese.h | 1070 | ||||
-rw-r--r-- | devtools/create_kyradat/resources/eob2_fmtowns_japanese.h | 11 | ||||
-rw-r--r-- | dists/engine-data/kyra.dat | bin | 1696846 -> 1724438 bytes | |||
-rw-r--r-- | engines/kyra/engine/eob.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/engine/eobcommon.cpp | 3 | ||||
-rw-r--r-- | engines/kyra/engine/eobcommon.h | 5 | ||||
-rw-r--r-- | engines/kyra/engine/items_eob.cpp | 14 | ||||
-rw-r--r-- | engines/kyra/resource/resource.h | 25 | ||||
-rw-r--r-- | engines/kyra/resource/staticres.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/resource/staticres_eob.cpp | 7 |
15 files changed, 3343 insertions, 37 deletions
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index 8f5b7b6de3..a2ec31199d 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -45,7 +45,7 @@ enum { - kKyraDatVersion = 94 + kKyraDatVersion = 95 }; const ExtractFilename extractFilenames[] = { @@ -429,6 +429,17 @@ const ExtractFilename extractFilenames[] = { { kEoB1IntroFilesHands, kStringList, false }, { kEoB1IntroFilesWdExit, kStringList, false }, { kEoB1IntroFilesTunnel, kStringList, false }, + + { kEoB1IntroStringsTower, kStringList, true }, + { kEoB1IntroStringsOrb, kStringList, true }, + { kEoB1IntroStringsWdEntry, kStringList, true }, + { kEoB1IntroStringsKing, kStringList, true }, + { kEoB1IntroStringsHands, kStringList, true }, + { kEoB1IntroStringsWdExit, kStringList, true }, + { kEoB1IntroStringsTunnel, kStringList, true }, + + { kEoB1FinaleStrings, kStringList, true }, + { kEoB1IntroOpeningFrmDelay, kRawData, false }, { kEoB1IntroWdEncodeX, kRawData, false }, { kEoB1IntroWdEncodeY, kRawData, false }, @@ -448,7 +459,11 @@ const ExtractFilename extractFilenames[] = { { kEoB1FinaleCouncilAnim4, kRawData, false }, { kEoB1FinaleEyesAnim, kRawData, false }, { kEoB1FinaleHandsAnim, kRawDataBe16, false }, + { kEoB1FinaleHandsAnim2, kRawDataBe16, false }, + { kEoB1FinaleHandsAnim3, kRawData, false }, { kEoB1FinaleTextDuration, kRawData, false }, + { kEoB1CreditsStrings, kRawData, false }, + { kEoB1CreditsCharWdth, kRawData, false }, { kEoB1DoorShapeDefs, kRawData, false }, { kEoB1DoorSwitchShapeDefs, kRawData, false }, { kEoB1DoorSwitchCoords, kRawData, false }, @@ -474,6 +489,11 @@ const ExtractFilename extractFilenames[] = { { kEoB1CgaMappingLevel3, kRawData, false }, { kEoB1CgaMappingLevel4, kRawData, false }, + { kEoB1Palettes16c, kRawData, false }, + { kEoB1PalCycleData, kRawData, false }, + { kEoB1PalCycleStyle1, kRawDataBe16, false }, + { kEoB1PalCycleStyle2, kRawDataBe16, false }, + { kEoB1NpcShpData, kRawData, false }, { kEoB1NpcSubShpIndex1, kRawData, false }, { kEoB1NpcSubShpIndex2, kRawData, false }, @@ -490,6 +510,11 @@ const ExtractFilename extractFilenames[] = { { kEoB1Npc6Strings, kStringList, true }, { kEoB1Npc7Strings, kStringList, true }, + { kEoB1ItemNames, kStringList, true }, + { kEoB1Ascii2SjisTable1, kRawDataBe16, true }, + { kEoB1Ascii2SjisTable2, kRawDataBe16, true }, + { kEoB1FontLookupTable, kRawData, true }, + // EYE OF THE BEHOLDER II { kEoB2MainMenuStrings, kStringList, true }, { kEoB2MainMenuUtilStrings, kStringList, true }, diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h index 40c725560f..783408e6ed 100644 --- a/devtools/create_kyradat/create_kyradat.h +++ b/devtools/create_kyradat/create_kyradat.h @@ -432,6 +432,17 @@ enum kExtractID { kEoB1IntroFilesHands, kEoB1IntroFilesWdExit, kEoB1IntroFilesTunnel, + + kEoB1IntroStringsTower, + kEoB1IntroStringsOrb, + kEoB1IntroStringsWdEntry, + kEoB1IntroStringsKing, + kEoB1IntroStringsHands, + kEoB1IntroStringsWdExit, + kEoB1IntroStringsTunnel, + + kEoB1FinaleStrings, + kEoB1IntroOpeningFrmDelay, kEoB1IntroWdEncodeX, kEoB1IntroWdEncodeY, @@ -452,7 +463,11 @@ enum kExtractID { kEoB1FinaleCouncilAnim4, kEoB1FinaleEyesAnim, kEoB1FinaleHandsAnim, + kEoB1FinaleHandsAnim2, + kEoB1FinaleHandsAnim3, kEoB1FinaleTextDuration, + kEoB1CreditsStrings, + kEoB1CreditsCharWdth, kEoB1DoorShapeDefs, kEoB1DoorSwitchShapeDefs, @@ -480,6 +495,11 @@ enum kExtractID { kEoB1CgaMappingLevel3, kEoB1CgaMappingLevel4, + kEoB1Palettes16c, + kEoB1PalCycleData, + kEoB1PalCycleStyle1, + kEoB1PalCycleStyle2, + kEoB1NpcShpData, kEoB1NpcSubShpIndex1, kEoB1NpcSubShpIndex2, @@ -496,6 +516,11 @@ enum kExtractID { kEoB1Npc6Strings, kEoB1Npc7Strings, + kEoB1ItemNames, + kEoB1Ascii2SjisTable1, + kEoB1Ascii2SjisTable2, + kEoB1FontLookupTable, + kEoB2MainMenuStrings, kEoB2MainMenuUtilStrings, diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp index fe7b45f55c..184d2d943b 100644 --- a/devtools/create_kyradat/games.cpp +++ b/devtools/create_kyradat/games.cpp @@ -104,7 +104,7 @@ const Game eob1Games[] = { { kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY }, { kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU }, - //{ kEoB1, kPlatformPC98, kNoSpecial, JA_JPN }, + { kEoB1, kPlatformPC98, kNoSpecial, JA_JPN }, GAME_DUMMY_ENTRY }; @@ -1757,6 +1757,22 @@ const int eob1PC98Need[] = { kEoB1IntroTvlW, kEoB1IntroTvlH, + kEoB1IntroStringsTower, + kEoB1IntroStringsOrb, + kEoB1IntroStringsWdEntry, + kEoB1IntroStringsKing, + kEoB1IntroStringsHands, + kEoB1IntroStringsWdExit, + kEoB1IntroStringsTunnel, + + kEoB1FinaleStrings, + kEoB1FinaleEyesAnim, + kEoB1FinaleHandsAnim, + kEoB1FinaleHandsAnim2, + kEoB1FinaleHandsAnim3, + kEoB1CreditsStrings, + kEoB1CreditsCharWdth, + kEoB1DoorShapeDefs, kEoB1DoorSwitchShapeDefs, kEoB1DoorSwitchCoords, @@ -1767,20 +1783,10 @@ const int eob1PC98Need[] = { kEoB1BeholderSfx, kEoB1TurnUndeadString, - kEoB1CgaMappingDefault, - kEoB1CgaMappingAlt, - kEoB1CgaMappingInv, - kEoB1CgaMappingItemsL, - kEoB1CgaMappingItemsS, - kEoB1CgaMappingThrown, - kEoB1CgaMappingIcons, - kEoB1CgaMappingDeco, - kEoB1CgaLevelMappingIndex, - kEoB1CgaMappingLevel0, - kEoB1CgaMappingLevel1, - kEoB1CgaMappingLevel2, - kEoB1CgaMappingLevel3, - kEoB1CgaMappingLevel4, + kEoB1Palettes16c, + kEoB1PalCycleData, + kEoB1PalCycleStyle1, + kEoB1PalCycleStyle2, kEoB1NpcShpData, kEoB1NpcSubShpIndex1, @@ -1798,6 +1804,11 @@ const int eob1PC98Need[] = { kEoB1Npc6Strings, kEoB1Npc7Strings, + kEoB1ItemNames, + kEoB1Ascii2SjisTable1, + kEoB1Ascii2SjisTable2, + kEoB1FontLookupTable, + kEoBBasePryDoorStrings, kEoBBaseWarningStrings, @@ -1945,9 +1956,6 @@ const int eob1PC98Need[] = { kEoBBaseDscTelptrShpCoords, kEoBBasePortalSeqData, - kEoBBaseManDef, - kEoBBaseManWord, - kEoBBaseManPrompt, kEoBBaseDscMonsterFrmOffsTbl1, kEoBBaseDscMonsterFrmOffsTbl2, @@ -1992,6 +2000,10 @@ const int eob1PC98Need[] = { kEoBBaseEncodeMonsterDefs, kEoBBaseNpcPresets, + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesIngame, + kEoBBaseSoundFilesFinale, + -1 }; @@ -3056,6 +3068,7 @@ const int eob2FMTownsNeed[] = { kEoBBaseMenuStringsRest3, kEoBBaseMenuStringsRest4, kEoBBaseMenuStringsDefeat, + kEoBBaseMenuStringsTransfer, kEoBBaseMenuStringsSpec, kEoBBaseMenuStringsSpellNo, kEoBBaseMenuYesNoStrings, @@ -3595,7 +3608,7 @@ const GameNeed gameNeedTable[] = { { kEoB1, kPlatformDOS, kNoSpecial, eob1FloppyNeed }, { kEoB1, kPlatformAmiga, kNoSpecial, eob1AmigaNeed }, - //{ kEoB1, kPlatformPC98, kNoSpecial, eob1PC98Need }, + { kEoB1, kPlatformPC98, kNoSpecial, eob1PC98Need }, { kEoB2, kPlatformDOS, kNoSpecial, eob2FloppyNeed }, { kEoB2, kPlatformAmiga, kNoSpecial, eob2AmigaNeed }, diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp index 36e6b0baf5..fdc02034e2 100644 --- a/devtools/create_kyradat/resources.cpp +++ b/devtools/create_kyradat/resources.cpp @@ -97,8 +97,8 @@ #include "resources/eob1_amiga.h" #include "resources/eob1_amiga_english.h" #include "resources/eob1_amiga_german.h" -//#include "resources/eob1_pc98.h" -//#include "resources/eob1_pc98_japanese.h" +#include "resources/eob1_pc98.h" +#include "resources/eob1_pc98_japanese.h" // Eye of the Beholder: The Legend of Darkmoon #include "resources/eob2_dos.h" @@ -1689,6 +1689,261 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseManWord, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ManWordAmigaGermanProvider }, { kEoBBaseManPrompt, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ManPromptAmigaGermanProvider }, { kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MonsterDistAttStringsAmigaGermanProvider }, + { kEoBBaseChargenStrings1, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ChargenStrings1PC98JapaneseProvider }, + { kEoBBaseChargenStrings2, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ChargenStrings2PC98JapaneseProvider }, + { kEoBBaseChargenStartLevels, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ChargenStartLevelsPC98Provider }, + { kEoBBaseChargenStatStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ChargenStatStringsPC98JapaneseProvider }, + { kEoBBaseChargenRaceSexStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ChargenRaceSexStringsPC98JapaneseProvider }, + { kEoBBaseChargenClassStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ChargenClassStringsPC98JapaneseProvider }, + { kEoBBaseChargenAlignmentStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ChargenAlignmentStringsPC98JapaneseProvider }, + { kEoBBaseChargenEnterGameStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ChargenEnterGameStringsPC98JapaneseProvider }, + { kEoBBaseChargenClassMinStats, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ChargenClassMinStatsPC98Provider }, + { kEoBBaseChargenRaceMinStats, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ChargenRaceMinStatsPC98Provider }, + { kEoBBaseChargenRaceMaxStats, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ChargenRaceMaxStatsPC98Provider }, + { kEoBBaseSaveThrowTable1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable1PC98Provider }, + { kEoBBaseSaveThrowTable2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable2PC98Provider }, + { kEoBBaseSaveThrowTable3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable3PC98Provider }, + { kEoBBaseSaveThrowTable4, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable4PC98Provider }, + { kEoBBaseSaveThrwLvlIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SaveThrwLvlIndexPC98Provider }, + { kEoBBaseSaveThrwModDiv, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SaveThrwModDivPC98Provider }, + { kEoBBaseSaveThrwModExt, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SaveThrwModExtPC98Provider }, + { kEoB1MainMenuStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MainMenuStringsPC98JapaneseProvider }, + { kEoB1BonusStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1BonusStringsPC98JapaneseProvider }, + { kEoB1IntroFilesOpening, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesOpeningPC98Provider }, + { kEoB1IntroFilesTower, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesTowerPC98Provider }, + { kEoB1IntroFilesOrb, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesOrbPC98Provider }, + { kEoB1IntroFilesWdEntry, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesWdEntryPC98Provider }, + { kEoB1IntroFilesKing, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesKingPC98Provider }, + { kEoB1IntroFilesHands, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesHandsPC98Provider }, + { kEoB1IntroFilesWdExit, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesWdExitPC98Provider }, + { kEoB1IntroFilesTunnel, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroFilesTunnelPC98Provider }, + { kEoB1IntroOpeningFrmDelay, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroOpeningFrmDelayPC98Provider }, + { kEoB1IntroWdEncodeX, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroWdEncodeXPC98Provider }, + { kEoB1IntroWdEncodeY, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroWdEncodeYPC98Provider }, + { kEoB1IntroWdEncodeWH, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroWdEncodeWHPC98Provider }, + { kEoB1IntroWdDsX, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroWdDsXPC98Provider }, + { kEoB1IntroWdDsY, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroWdDsYPC98Provider }, + { kEoB1IntroTvlX1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroTvlX1PC98Provider }, + { kEoB1IntroTvlY1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroTvlY1PC98Provider }, + { kEoB1IntroTvlX2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroTvlX2PC98Provider }, + { kEoB1IntroTvlY2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroTvlY2PC98Provider }, + { kEoB1IntroTvlW, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroTvlWPC98Provider }, + { kEoB1IntroTvlH, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1IntroTvlHPC98Provider }, + { kEoB1IntroStringsTower, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1IntroStringsTowerPC98Provider }, + { kEoB1IntroStringsOrb, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1IntroStringsOrbPC98Provider }, + { kEoB1IntroStringsWdEntry, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1IntroStringsWdEntryPC98Provider }, + { kEoB1IntroStringsKing, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1IntroStringsKingPC98Provider }, + { kEoB1IntroStringsHands, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1IntroStringsHandsPC98Provider }, + { kEoB1IntroStringsWdExit, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1IntroStringsWdExitPC98Provider }, + { kEoB1IntroStringsTunnel, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1IntroStringsTunnelPC98Provider }, + { kEoB1FinaleStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1FinaleStringsPC98Provider }, + { kEoB1FinaleEyesAnim, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FinaleEyesAnimPC98Provider }, + { kEoB1FinaleHandsAnim, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FinaleHandsAnimPC98Provider }, + { kEoB1FinaleHandsAnim2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FinaleHandsAnim2PC98Provider }, + { kEoB1FinaleHandsAnim3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FinaleHandsAnim3PC98Provider }, + { kEoB1CreditsStrings, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1CreditsStringsPC98Provider }, + { kEoB1CreditsCharWdth, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1CreditsCharWdthPC98Provider }, + { kEoB1DoorShapeDefs, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DoorShapeDefsPC98Provider }, + { kEoB1DoorSwitchShapeDefs, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DoorSwitchShapeDefsPC98Provider }, + { kEoB1DoorSwitchCoords, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DoorSwitchCoordsPC98Provider }, + { kEoB1MonsterProperties, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterPropertiesPC98Provider }, + { kEoB1EnemyMageSpellList, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1EnemyMageSpellListPC98Provider }, + { kEoB1EnemyMageSfx, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1EnemyMageSfxPC98Provider }, + { kEoB1BeholderSpellList, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1BeholderSpellListPC98Provider }, + { kEoB1BeholderSfx, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1BeholderSfxPC98Provider }, + { kEoB1TurnUndeadString, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1TurnUndeadStringPC98JapaneseProvider }, + { kEoB1NpcShpData, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NpcShpDataPC98Provider }, + { kEoB1NpcSubShpIndex1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NpcSubShpIndex1PC98Provider }, + { kEoB1NpcSubShpIndex2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NpcSubShpIndex2PC98Provider }, + { kEoB1NpcSubShpY, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NpcSubShpYPC98Provider }, + { kEoB1Npc0Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc0StringsPC98JapaneseProvider }, + { kEoB1Npc11Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc11StringsPC98JapaneseProvider }, + { kEoB1Npc12Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc12StringsPC98JapaneseProvider }, + { kEoB1Npc21Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc21StringsPC98JapaneseProvider }, + { kEoB1Npc22Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc22StringsPC98JapaneseProvider }, + { kEoB1Npc31Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc31StringsPC98JapaneseProvider }, + { kEoB1Npc32Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc32StringsPC98JapaneseProvider }, + { kEoB1Npc4Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc4StringsPC98JapaneseProvider }, + { kEoB1Npc5Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc5StringsPC98JapaneseProvider }, + { kEoB1Npc6Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc6StringsPC98JapaneseProvider }, + { kEoB1Npc7Strings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Npc7StringsPC98JapaneseProvider }, + { kEoBBasePryDoorStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1PryDoorStringsPC98JapaneseProvider }, + { kEoBBaseWarningStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1WarningStringsPC98JapaneseProvider }, + { kEoB1ItemNames, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ItemNamesPC98JapaneseProvider }, + { kEoB1Ascii2SjisTable1, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Ascii2SjisTable1PC98JapaneseProvider }, + { kEoB1Ascii2SjisTable2, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1Ascii2SjisTable2PC98JapaneseProvider }, + { kEoB1FontLookupTable, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1FontLookupTablePC98JapaneseProvider }, + { kEoBBaseItemSuffixStringsRings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ItemSuffixStringsRingsPC98JapaneseProvider }, + { kEoBBaseItemSuffixStringsPotions, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ItemSuffixStringsPotionsPC98JapaneseProvider }, + { kEoBBaseItemSuffixStringsWands, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ItemSuffixStringsWandsPC98JapaneseProvider }, + { kEoBBaseRipItemStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1RipItemStringsPC98JapaneseProvider }, + { kEoBBaseCursedString, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CursedStringPC98JapaneseProvider }, + { kEoBBaseEnchantedString, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1EnchantedStringPC98Provider }, + { kEoBBaseMagicObjectStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicObjectStringsPC98JapaneseProvider }, + { kEoBBaseMagicObjectString5, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicObjectString5PC98JapaneseProvider }, + { kEoBBasePatternSuffix, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1PatternSuffixPC98JapaneseProvider }, + { kEoBBasePatternGrFix1, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1PatternGrFix1PC98JapaneseProvider }, + { kEoBBasePatternGrFix2, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1PatternGrFix2PC98JapaneseProvider }, + { kEoBBaseValidateArmorString, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ValidateArmorStringPC98JapaneseProvider }, + { kEoBBaseValidateNoDropString, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ValidateNoDropStringPC98JapaneseProvider }, + { kEoBBasePotionStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1PotionStringsPC98JapaneseProvider }, + { kEoBBaseWandStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1WandStringsPC98JapaneseProvider }, + { kEoBBaseItemMisuseStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ItemMisuseStringsPC98JapaneseProvider }, + { kEoBBaseTakenStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1TakenStringsPC98JapaneseProvider }, + { kEoBBasePotionEffectStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1PotionEffectStringsPC98JapaneseProvider }, + { kEoBBaseYesNoStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1YesNoStringsPC98JapaneseProvider }, + { kRpgCommonMoreStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MoreStringsPC98JapaneseProvider }, + { kEoBBaseNpcMaxStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1NpcMaxStringsPC98JapaneseProvider }, + { kEoBBaseNpcJoinStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1NpcJoinStringsPC98JapaneseProvider }, + { kEoBBaseCancelStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CancelStringsPC98JapaneseProvider }, + { kEoBBaseMenuStringsMain, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsMainPC98JapaneseProvider }, + { kEoBBaseMenuStringsSaveLoad, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsSaveLoadPC98JapaneseProvider }, + { kEoBBaseMenuStringsOnOff, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsOnOffPC98JapaneseProvider }, + { kEoBBaseMenuStringsSpells, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsSpellsPC98JapaneseProvider }, + { kEoBBaseMenuStringsRest, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsRestPC98JapaneseProvider }, + { kEoBBaseMenuStringsDrop, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsDropPC98JapaneseProvider }, + { kEoBBaseMenuStringsExit, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsExitPC98JapaneseProvider }, + { kEoBBaseMenuStringsStarve, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsStarvePC98JapaneseProvider }, + { kEoBBaseMenuStringsScribe, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsScribePC98JapaneseProvider }, + { kEoBBaseMenuStringsDrop2, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsDrop2PC98JapaneseProvider }, + { kEoBBaseMenuStringsHead, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsHeadPC98JapaneseProvider }, + { kEoBBaseMenuStringsPoison, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsPoisonPC98JapaneseProvider }, + { kEoBBaseMenuStringsMgc, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsMgcPC98JapaneseProvider }, + { kEoBBaseMenuStringsPrefs, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsPrefsPC98JapaneseProvider }, + { kEoBBaseMenuStringsRest2, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsRest2PC98JapaneseProvider }, + { kEoBBaseMenuStringsRest4, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsRest4PC98JapaneseProvider }, + { kEoBBaseMenuStringsDefeat, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuStringsDefeatPC98JapaneseProvider }, + { kEoBBaseMenuYesNoStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MenuYesNoStringsPC98JapaneseProvider }, + { kEoBBaseSpellLevelsMage, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SpellLevelsMagePC98Provider }, + { kEoBBaseSpellLevelsCleric, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SpellLevelsClericPC98Provider }, + { kEoBBaseNumSpellsCleric, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NumSpellsClericPC98Provider }, + { kEoBBaseNumSpellsWisAdj, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NumSpellsWisAdjPC98Provider }, + { kEoBBaseNumSpellsPal, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NumSpellsPalPC98Provider }, + { kEoBBaseNumSpellsMage, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NumSpellsMagePC98Provider }, + { kEoBBaseCharGuiStringsHp, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharGuiStringsHpPC98JapaneseProvider }, + { kEoBBaseCharGuiStringsWp1, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharGuiStringsWp1PC98JapaneseProvider }, + { kEoBBaseCharGuiStringsWr, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharGuiStringsWrPC98JapaneseProvider }, + { kEoBBaseCharGuiStringsSt1, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharGuiStringsSt1PC98JapaneseProvider }, + { kEoBBaseCharGuiStringsIn, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharGuiStringsInPC98JapaneseProvider }, + { kEoBBaseCharStatusStrings7, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharStatusStrings7PC98JapaneseProvider }, + { kEoBBaseCharStatusStrings81, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharStatusStrings81PC98JapaneseProvider }, + { kEoBBaseCharStatusStrings9, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharStatusStrings9PC98JapaneseProvider }, + { kEoBBaseCharStatusStrings131, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1CharStatusStrings131PC98JapaneseProvider }, + { kEoBBaseLevelGainStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1LevelGainStringsPC98JapaneseProvider }, + { kEoBBaseExperienceTable0, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable0PC98Provider }, + { kEoBBaseExperienceTable1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable1PC98Provider }, + { kEoBBaseExperienceTable2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable2PC98Provider }, + { kEoBBaseExperienceTable3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable3PC98Provider }, + { kEoBBaseExperienceTable4, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable4PC98Provider }, + { kEoBBaseBookNumbers, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1BookNumbersPC98JapaneseProvider }, + { kEoBBaseMageSpellsList, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MageSpellsListPC98JapaneseProvider }, + { kEoBBaseClericSpellsList, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1ClericSpellsListPC98JapaneseProvider }, + { kEoBBaseSpellNames, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1SpellNamesPC98JapaneseProvider }, + { kEoBBaseMagicStrings1, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings1PC98JapaneseProvider }, + { kEoBBaseMagicStrings2, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings2PC98JapaneseProvider }, + { kEoBBaseMagicStrings3, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings3PC98JapaneseProvider }, + { kEoBBaseMagicStrings4, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings4PC98JapaneseProvider }, + { kEoBBaseMagicStrings6, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings6PC98JapaneseProvider }, + { kEoBBaseMagicStrings7, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings7PC98JapaneseProvider }, + { kEoBBaseMagicStrings8, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings8PC98JapaneseProvider }, + //{ kEoBBaseMagicStrings9, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MagicStrings9PC98JapaneseProvider }, + { kEoBBaseExpObjectTblIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTblIndexPC98Provider }, + { kEoBBaseExpObjectShpStart, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExpObjectShpStartPC98Provider }, + { kEoBBaseExpObjectTbl1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTbl1PC98Provider }, + { kEoBBaseExpObjectTbl2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTbl2PC98Provider }, + { kEoBBaseExpObjectTbl3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTbl3PC98Provider }, + { kEoBBaseExpObjectY, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ExpObjectYPC98Provider }, + { kEoBBaseSparkDefSteps, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkDefStepsPC98Provider }, + { kEoBBaseSparkDefSubSteps, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkDefSubStepsPC98Provider }, + { kEoBBaseSparkDefShift, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkDefShiftPC98Provider }, + { kEoBBaseSparkDefAdd, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkDefAddPC98Provider }, + { kEoBBaseSparkDefX, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkDefXPC98Provider }, + { kEoBBaseSparkDefY, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkDefYPC98Provider }, + { kEoBBaseSparkOfFlags1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkOfFlags1PC98Provider }, + { kEoBBaseSparkOfFlags2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkOfFlags2PC98Provider }, + { kEoBBaseSparkOfShift, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkOfShiftPC98Provider }, + { kEoBBaseSparkOfX, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkOfXPC98Provider }, + { kEoBBaseSparkOfY, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SparkOfYPC98Provider }, + { kEoBBaseSpellProperties, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SpellPropertiesPC98Provider }, + { kEoBBaseMagicFlightProps, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MagicFlightPropsPC98Provider }, + { kEoBBaseTurnUndeadEffect, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1TurnUndeadEffectPC98Provider }, + { kEoBBaseBurningHandsDest, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1BurningHandsDestPC98Provider }, + { kEoBBaseConeOfColdDest1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest1PC98Provider }, + { kEoBBaseConeOfColdDest2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest2PC98Provider }, + { kEoBBaseConeOfColdDest3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest3PC98Provider }, + { kEoBBaseConeOfColdDest4, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest4PC98Provider }, + { kEoBBaseConeOfColdGfxTbl, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdGfxTblPC98Provider }, + { kRpgCommonDscDoorShapeIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorShapeIndexPC98Provider }, + { kEoBBaseWllFlagPreset, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1WllFlagPresetPC98Provider }, + { kEoBBaseDscShapeCoords, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscShapeCoordsPC98Provider }, + { kRpgCommonDscDoorScaleOffs, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleOffsPC98Provider }, + { kEoBBaseDscDoorScaleMult1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult1PC98Provider }, + { kEoBBaseDscDoorScaleMult2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult2PC98Provider }, + { kEoBBaseDscDoorScaleMult3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult3PC98Provider }, + { kEoBBaseDscDoorScaleMult4, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult4PC98Provider }, + { kEoBBaseDscDoorScaleMult5, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult5PC98Provider }, + { kEoBBaseDscDoorScaleMult6, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult6PC98Provider }, + { kEoBBaseDscDoorXE, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorXEPC98Provider }, + { kEoBBaseDscDoorY1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorY1PC98Provider }, + { kEoBBaseDscDoorY3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorY3PC98Provider }, + { kEoBBaseDscDoorY4, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorY4PC98Provider }, + { kEoBBaseDscDoorY5, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorY5PC98Provider }, + { kEoBBaseDscDoorY6, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorY6PC98Provider }, + { kEoBBaseDscDoorY7, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorY7PC98Provider }, + { kEoBBaseDscDoorCoordsExt, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorCoordsExtPC98Provider }, + { kRpgCommonDscDoorFrameY1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameY1PC98Provider }, + { kRpgCommonDscDoorFrameY2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameY2PC98Provider }, + { kRpgCommonDscDoorFrameIndex1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameIndex1PC98Provider }, + { kRpgCommonDscDoorFrameIndex2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameIndex2PC98Provider }, + { kEoBBaseDscItemPosIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscItemPosIndexPC98Provider }, + { kEoBBaseDscItemShpX, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscItemShpXPC98Provider }, + { kEoBBaseDscItemScaleIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscItemScaleIndexPC98Provider }, + { kEoBBaseDscItemTileIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscItemTileIndexPC98Provider }, + { kEoBBaseDscItemShapeMap, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscItemShapeMapPC98Provider }, + { kEoBBaseDscTelptrShpCoords, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscTelptrShpCoordsPC98Provider }, + { kEoBBasePortalSeqData, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1PortalSeqDataPC98Provider }, + { kEoBBaseDscMonsterFrmOffsTbl1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscMonsterFrmOffsTbl1PC98Provider }, + { kEoBBaseDscMonsterFrmOffsTbl2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscMonsterFrmOffsTbl2PC98Provider }, + { kEoBBaseInvSlotX, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1InvSlotXPC98Provider }, + { kEoBBaseInvSlotY, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1InvSlotYPC98Provider }, + { kEoBBaseSlotValidationFlags, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SlotValidationFlagsPC98Provider }, + { kEoBBaseProjectileWeaponTypes, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ProjectileWeaponTypesPC98Provider }, + { kEoBBaseWandTypes, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1WandTypesPC98Provider }, + { kEoBBaseDrawObjPosIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DrawObjPosIndexPC98Provider }, + { kEoBBaseFlightObjFlipIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FlightObjFlipIndexPC98Provider }, + { kEoBBaseFlightObjShpMap, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FlightObjShpMapPC98Provider }, + { kEoBBaseFlightObjSclIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FlightObjSclIndexPC98Provider }, + { kRpgCommonDscShapeIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscShapeIndexPC98Provider }, + { kRpgCommonDscX, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscXPC98Provider }, + { kRpgCommonDscTileIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscTileIndexPC98Provider }, + { kRpgCommonDscDimData1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDimData1PC98Provider }, + { kRpgCommonDscDimData2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDimData2PC98Provider }, + { kRpgCommonDscBlockMap, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscBlockMapPC98Provider }, + { kRpgCommonDscDimMap, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscDimMapPC98Provider }, + { kRpgCommonDscBlockIndex, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1DscBlockIndexPC98Provider }, + { kEoBBaseClassModifierFlags, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1ClassModifierFlagsPC98Provider }, + { kEoBBaseMonsterStepTable01, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterStepTable01PC98Provider }, + { kEoBBaseMonsterStepTable2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterStepTable2PC98Provider }, + { kEoBBaseMonsterStepTable3, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterStepTable3PC98Provider }, + { kEoBBaseMonsterCloseAttPosTable1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttPosTable1PC98Provider }, + { kEoBBaseMonsterCloseAttPosTable21, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttPosTable21PC98Provider }, + { kEoBBaseMonsterCloseAttChkTable1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttChkTable1PC98Provider }, + { kEoBBaseMonsterCloseAttChkTable2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttChkTable2PC98Provider }, + { kEoBBaseMonsterCloseAttDstTable1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttDstTable1PC98Provider }, + { kEoBBaseMonsterCloseAttDstTable2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttDstTable2PC98Provider }, + { kEoBBaseMonsterProximityTable, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterProximityTablePC98Provider }, + { kEoBBaseFindBlockMonstersTable, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1FindBlockMonstersTablePC98Provider }, + { kEoBBaseMonsterDirChangeTable, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1MonsterDirChangeTablePC98Provider }, + { kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformPC98, kNoSpecial, JA_JPN, &kEoB1MonsterDistAttStringsPC98JapaneseProvider }, + { kEoBBaseEncodeMonsterDefs, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1EncodeMonsterDefsPC98Provider }, + { kEoBBaseNpcPresets, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1NpcPresetsPC98Provider }, + { kEoB1Palettes16c, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1Palettes16cPC98Provider }, + { kEoB1PalCycleData, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1PalCycleDataPC98Provider }, + { kEoB1PalCycleStyle1, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1PalCycleStyle1PC98Provider }, + { kEoB1PalCycleStyle2, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1PalCycleStyle2PC98Provider }, + { kEoBBaseSoundFilesIntro, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIntroPC98Provider }, + { kEoBBaseSoundFilesIngame, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIngamePC98Provider }, + { kEoBBaseSoundFilesFinale, kEoB1, kPlatformPC98, kNoSpecial, UNK_LANG, &kEoB1SoundFilesFinalePC98Provider }, { kEoBBaseChargenStrings1, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2ChargenStrings1DOSEnglishProvider }, { kEoBBaseChargenStrings2, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2ChargenStrings2DOSEnglishProvider }, { kEoBBaseChargenStartLevels, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsDOSProvider }, @@ -2073,10 +2328,6 @@ 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 }, @@ -2468,12 +2719,6 @@ static const ResourceProvider resourceProviders[] = { { 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 }, @@ -2538,6 +2783,7 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseMenuStringsRest3, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest3FMTownsJapaneseProvider }, { kEoBBaseMenuStringsRest4, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest4FMTownsJapaneseProvider }, { kEoBBaseMenuStringsDefeat, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsDefeatFMTownsJapaneseProvider }, + { kEoBBaseMenuStringsTransfer, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsTransferFMTownsJapaneseProvider }, { kEoBBaseMenuStringsSpec, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsSpecFMTownsJapaneseProvider }, { kEoBBaseMenuStringsSpellNo, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MenuStringsSpellNoFMTownsProvider }, { kEoBBaseMenuYesNoStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuYesNoStringsFMTownsJapaneseProvider }, diff --git a/devtools/create_kyradat/resources/eob1_pc98.h b/devtools/create_kyradat/resources/eob1_pc98.h new file mode 100644 index 0000000000..cf9c7dd729 --- /dev/null +++ b/devtools/create_kyradat/resources/eob1_pc98.h @@ -0,0 +1,1868 @@ +static const byte kEoB1ChargenStartLevelsPC98[60] = { + 0x03, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x01, + 0x03, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x01, + 0x03, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x01, + 0x02, 0x02, 0x00, 0x02, 0x02, 0x03, 0x00, 0x02, + 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02, 0x03, + 0x03, 0x02, 0x00, 0x02, 0x02, 0x03, 0x00, 0x02, + 0x01, 0x02, 0x01, 0x03, 0x02, 0x02, 0x00, 0x02, + 0x02, 0x02, 0x00, 0x02 +}; + +static const ByteProvider kEoB1ChargenStartLevelsPC98Provider = { ARRAYSIZE(kEoB1ChargenStartLevelsPC98), kEoB1ChargenStartLevelsPC98 }; + +static const byte kEoB1ChargenClassMinStatsPC98[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 kEoB1ChargenClassMinStatsPC98Provider = { ARRAYSIZE(kEoB1ChargenClassMinStatsPC98), kEoB1ChargenClassMinStatsPC98 }; + +static const byte kEoB1ChargenRaceMinStatsPC98[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 kEoB1ChargenRaceMinStatsPC98Provider = { ARRAYSIZE(kEoB1ChargenRaceMinStatsPC98), kEoB1ChargenRaceMinStatsPC98 }; + +static const uint16 kEoB1ChargenRaceMaxStatsPC98[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 kEoB1ChargenRaceMaxStatsPC98Provider = { ARRAYSIZE(kEoB1ChargenRaceMaxStatsPC98), kEoB1ChargenRaceMaxStatsPC98 }; + +static const byte kEoB1SaveThrowTable1PC98[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 kEoB1SaveThrowTable1PC98Provider = { ARRAYSIZE(kEoB1SaveThrowTable1PC98), kEoB1SaveThrowTable1PC98 }; + +static const byte kEoB1SaveThrowTable2PC98[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 kEoB1SaveThrowTable2PC98Provider = { ARRAYSIZE(kEoB1SaveThrowTable2PC98), kEoB1SaveThrowTable2PC98 }; + +static const byte kEoB1SaveThrowTable3PC98[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 kEoB1SaveThrowTable3PC98Provider = { ARRAYSIZE(kEoB1SaveThrowTable3PC98), kEoB1SaveThrowTable3PC98 }; + +static const byte kEoB1SaveThrowTable4PC98[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 kEoB1SaveThrowTable4PC98Provider = { ARRAYSIZE(kEoB1SaveThrowTable4PC98), kEoB1SaveThrowTable4PC98 }; + +static const byte kEoB1SaveThrwLvlIndexPC98[6] = { + 0x11, 0x15, 0x13, 0x15, 0x11, 0x11 +}; + +static const ByteProvider kEoB1SaveThrwLvlIndexPC98Provider = { ARRAYSIZE(kEoB1SaveThrwLvlIndexPC98), kEoB1SaveThrwLvlIndexPC98 }; + +static const byte kEoB1SaveThrwModDivPC98[6] = { + 0x02, 0x05, 0x03, 0x04, 0x02, 0x02 +}; + +static const ByteProvider kEoB1SaveThrwModDivPC98Provider = { ARRAYSIZE(kEoB1SaveThrwModDivPC98), kEoB1SaveThrwModDivPC98 }; + +static const byte kEoB1SaveThrwModExtPC98[6] = { + 0x0A, 0x05, 0x07, 0x06, 0x0A, 0x0A +}; + +static const ByteProvider kEoB1SaveThrwModExtPC98Provider = { ARRAYSIZE(kEoB1SaveThrwModExtPC98), kEoB1SaveThrwModExtPC98 }; + +static const char *const kEoB1IntroFilesOpeningPC98[8] = { + "SSI.BIN", + "AND.BIN", + "PON2.BIN", + "PRESENT.BIN", + "DAND.BIN", + "EOBTITLE.BIN", + "WESTWOOD.BIN", + "" +}; + +static const StringListProvider kEoB1IntroFilesOpeningPC98Provider = { ARRAYSIZE(kEoB1IntroFilesOpeningPC98), kEoB1IntroFilesOpeningPC98 }; + +static const char *const kEoB1IntroFilesTowerPC98[2] = { + "", + "TOWRMAGE.BIN" +}; + +static const StringListProvider kEoB1IntroFilesTowerPC98Provider = { ARRAYSIZE(kEoB1IntroFilesTowerPC98), kEoB1IntroFilesTowerPC98 }; + +static const char *const kEoB1IntroFilesOrbPC98[2] = { + "ORB.BIN", + "TOWRMAGE.BIN" +}; + +static const StringListProvider kEoB1IntroFilesOrbPC98Provider = { ARRAYSIZE(kEoB1IntroFilesOrbPC98), kEoB1IntroFilesOrbPC98 }; + +static const char *const kEoB1IntroFilesWdEntryPC98[4] = { + "", + "WTRDP1.BIN", + "WTRDP2.BIN", + "WTRDP3.BIN" +}; + +static const StringListProvider kEoB1IntroFilesWdEntryPC98Provider = { ARRAYSIZE(kEoB1IntroFilesWdEntryPC98), kEoB1IntroFilesWdEntryPC98 }; + +static const char *const kEoB1IntroFilesKingPC98[2] = { + "KING.BIN", + "ADVENTUR.BIN" +}; + +static const StringListProvider kEoB1IntroFilesKingPC98Provider = { ARRAYSIZE(kEoB1IntroFilesKingPC98), kEoB1IntroFilesKingPC98 }; + +static const char *const kEoB1IntroFilesHandsPC98[1] = { + "HANDS.BIN" +}; + +static const StringListProvider kEoB1IntroFilesHandsPC98Provider = { ARRAYSIZE(kEoB1IntroFilesHandsPC98), kEoB1IntroFilesHandsPC98 }; + +static const char *const kEoB1IntroFilesWdExitPC98[5] = { + "WTRDP3.BIN", + "", + "ORB.BIN", + "TUNNEL.BIN", + "" +}; + +static const StringListProvider kEoB1IntroFilesWdExitPC98Provider = { ARRAYSIZE(kEoB1IntroFilesWdExitPC98), kEoB1IntroFilesWdExitPC98 }; + +static const char *const kEoB1IntroFilesTunnelPC98[2] = { + "AVALANCH.BIN", + "ZOOMTUNL.BIN" +}; + +static const StringListProvider kEoB1IntroFilesTunnelPC98Provider = { ARRAYSIZE(kEoB1IntroFilesTunnelPC98), kEoB1IntroFilesTunnelPC98 }; + +static const byte kEoB1IntroOpeningFrmDelayPC98[7] = { + 0x8C, 0x64, 0x32, 0x64, 0x32, 0x8C, 0x64 +}; + +static const ByteProvider kEoB1IntroOpeningFrmDelayPC98Provider = { ARRAYSIZE(kEoB1IntroOpeningFrmDelayPC98), kEoB1IntroOpeningFrmDelayPC98 }; + +static const byte kEoB1IntroWdEncodeXPC98[31] = { + 0x00, 0x18, 0x02, 0x04, 0x1A, 0x05, 0x10, 0x06, + 0x10, 0x07, 0x11, 0x04, 0x13, 0x05, 0x06, 0x13, + 0x09, 0x14, 0x0B, 0x0D, 0x16, 0x0D, 0x16, 0x0E, + 0x1A, 0x0E, 0x17, 0x0F, 0x1B, 0x0F, 0x17 +}; + +static const ByteProvider kEoB1IntroWdEncodeXPC98Provider = { ARRAYSIZE(kEoB1IntroWdEncodeXPC98), kEoB1IntroWdEncodeXPC98 }; + +static const byte kEoB1IntroWdEncodeYPC98[31] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01 +}; + +static const ByteProvider kEoB1IntroWdEncodeYPC98Provider = { ARRAYSIZE(kEoB1IntroWdEncodeYPC98), kEoB1IntroWdEncodeYPC98 }; + +static const byte kEoB1IntroWdEncodeWHPC98[31] = { + 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 +}; + +static const ByteProvider kEoB1IntroWdEncodeWHPC98Provider = { ARRAYSIZE(kEoB1IntroWdEncodeWHPC98), kEoB1IntroWdEncodeWHPC98 }; + +static const uint16 kEoB1IntroWdDsXPC98[31] = { + 0x0120, 0x0120, 0x0120, 0x0130, 0x0130, 0x00B2, 0x00B2, 0x00BC, + 0x00BC, 0x00AE, 0x00AE, 0x0125, 0x0125, 0x0125, 0x0101, 0x0101, + 0x00E9, 0x00E9, 0x00E9, 0x00AB, 0x00AB, 0x00CC, 0x00CC, 0x00F0, + 0x00F0, 0x010C, 0x010C, 0x00E0, 0x00E0, 0x00BA, 0x00BA +}; + +static const Uint16Provider kEoB1IntroWdDsXPC98Provider = { ARRAYSIZE(kEoB1IntroWdDsXPC98), kEoB1IntroWdDsXPC98 }; + +static const byte kEoB1IntroWdDsYPC98[31] = { + 0x28, 0x28, 0x28, 0x38, 0x38, 0x26, 0x26, 0x1D, + 0x1D, 0x34, 0x34, 0x50, 0x50, 0x50, 0x50, 0x50, + 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x2A, 0x2A, 0x66, + 0x66, 0x67, 0x67, 0x1C, 0x1C, 0x44, 0x44 +}; + +static const ByteProvider kEoB1IntroWdDsYPC98Provider = { ARRAYSIZE(kEoB1IntroWdDsYPC98), kEoB1IntroWdDsYPC98 }; + +static const byte kEoB1IntroTvlX1PC98[6] = { + 0x00, 0x08, 0x10, 0x00, 0x0F, 0x00 +}; + +static const ByteProvider kEoB1IntroTvlX1PC98Provider = { ARRAYSIZE(kEoB1IntroTvlX1PC98), kEoB1IntroTvlX1PC98 }; + +static const byte kEoB1IntroTvlY1PC98[6] = { + 0x00, 0x00, 0x00, 0x30, 0x36, 0x86 +}; + +static const ByteProvider kEoB1IntroTvlY1PC98Provider = { ARRAYSIZE(kEoB1IntroTvlY1PC98), kEoB1IntroTvlY1PC98 }; + +static const byte kEoB1IntroTvlX2PC98[6] = { + 0x10, 0x10, 0x0F, 0x0C, 0x0B, 0x0B +}; + +static const ByteProvider kEoB1IntroTvlX2PC98Provider = { ARRAYSIZE(kEoB1IntroTvlX2PC98), kEoB1IntroTvlX2PC98 }; + +static const byte kEoB1IntroTvlY2PC98[6] = { + 0x35, 0x35, 0x35, 0x35, 0x35, 0x61 +}; + +static const ByteProvider kEoB1IntroTvlY2PC98Provider = { ARRAYSIZE(kEoB1IntroTvlY2PC98), kEoB1IntroTvlY2PC98 }; + +static const byte kEoB1IntroTvlWPC98[6] = { + 0x08, 0x08, 0x0B, 0x0F, 0x12, 0x12 +}; + +static const ByteProvider kEoB1IntroTvlWPC98Provider = { ARRAYSIZE(kEoB1IntroTvlWPC98), kEoB1IntroTvlWPC98 }; + +static const byte kEoB1IntroTvlHPC98[6] = { + 0x1A, 0x30, 0x36, 0x45, 0x50, 0x28 +}; + +static const ByteProvider kEoB1IntroTvlHPC98Provider = { ARRAYSIZE(kEoB1IntroTvlHPC98), kEoB1IntroTvlHPC98 }; + +static const byte kEoB1DoorShapeDefsPC98[96] = { + 0x00, 0x00, 0x0a, 0x48, 0x11, 0x98, 0x07, 0x2f, + 0x19, 0x48, 0x04, 0x1d, 0x0a, 0x00, 0x0a, 0x48, + 0x1d, 0x48, 0x07, 0x2f, 0x19, 0x68, 0x04, 0x1d, + 0x14, 0x00, 0x06, 0x48, 0x24, 0x48, 0x04, 0x2f, + 0x1e, 0x78, 0x03, 0x1d, 0x1a, 0x00, 0x0c, 0x48, + 0x00, 0x90, 0x07, 0x29, 0x21, 0x78, 0x04, 0x1b, + 0x00, 0xbc, 0x0a, 0x0c, 0x0a, 0xbc, 0x06, 0x08, + 0x0a, 0xc4, 0x04, 0x02, 0x07, 0x4a, 0x09, 0x37, + 0x00, 0x4a, 0x07, 0x25, 0x07, 0xa0, 0x05, 0x17, + 0x07, 0x82, 0x09, 0x1c, 0x00, 0x70, 0x07, 0x13, + 0x0c, 0xa0, 0x05, 0x0b, 0x10, 0x48, 0x09, 0x4b, + 0x18, 0x98, 0x07, 0x2e, 0x1f, 0x98, 0x04, 0x1d +}; + +static const ByteProvider kEoB1DoorShapeDefsPC98Provider = { ARRAYSIZE(kEoB1DoorShapeDefsPC98), kEoB1DoorShapeDefsPC98 }; + +static const byte kEoB1DoorSwitchShapeDefsPC98[96] = { + 0x25, 0x78, 0x01, 0x07, 0x25, 0x88, 0x01, 0x03, + 0x25, 0x90, 0x01, 0x01, 0x25, 0x78, 0x01, 0x07, + 0x25, 0x88, 0x01, 0x03, 0x25, 0x90, 0x01, 0x01, + 0x26, 0x78, 0x01, 0x0b, 0x26, 0x88, 0x01, 0x06, + 0x26, 0x90, 0x01, 0x04, 0x27, 0x78, 0x01, 0x0e, + 0x27, 0x88, 0x01, 0x08, 0x25, 0x90, 0x01, 0x01, + 0x25, 0x78, 0x01, 0x07, 0x25, 0x88, 0x01, 0x03, + 0x25, 0x90, 0x01, 0x01, 0x25, 0x98, 0x01, 0x0b, + 0x25, 0xa8, 0x01, 0x06, 0x25, 0xb0, 0x01, 0x04, + 0x25, 0x98, 0x01, 0x0b, 0x25, 0xa8, 0x01, 0x05, + 0x25, 0xb0, 0x01, 0x04, 0x26, 0x98, 0x01, 0x0a, + 0x26, 0xa8, 0x01, 0x04, 0x25, 0x90, 0x01, 0x01 +}; + +static const ByteProvider kEoB1DoorSwitchShapeDefsPC98Provider = { ARRAYSIZE(kEoB1DoorSwitchShapeDefsPC98), kEoB1DoorSwitchShapeDefsPC98 }; + +static const byte kEoB1DoorSwitchCoordsPC98[48] = { + 0x82, 0x24, 0x74, 0x27, 0x00, 0x00, 0x82, 0x24, + 0x74, 0x27, 0x00, 0x00, 0x5b, 0x36, 0x5a, 0x33, + 0x5a, 0x2d, 0x88, 0x26, 0x74, 0x29, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x24, + 0x73, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x2b, 0x74, 0x2b, 0x00, 0x00 +}; + +static const ByteProvider kEoB1DoorSwitchCoordsPC98Provider = { ARRAYSIZE(kEoB1DoorSwitchCoordsPC98), kEoB1DoorSwitchCoordsPC98 }; + +static const byte kEoB1MonsterPropertiesPC98[594] = { + 0x07, 0x12, 0xff, 0x01, 0x01, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x02, 0x4b, + 0x02, 0xff, 0x00, 0x07, 0x11, 0x02, 0x01, 0x01, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x01, 0x38, 0x39, 0x00, 0xff, 0x00, 0x05, 0x11, + 0x01, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x0c, 0x04, 0x00, 0x00, + 0x00, 0x41, 0x00, 0x00, 0x42, 0x43, 0x00, 0x02, + 0x00, 0x08, 0x0f, 0x02, 0x01, 0x01, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x49, + 0x4a, 0x00, 0x03, 0x00, 0x04, 0x10, 0x02, 0x02, + 0x01, 0x04, 0x01, 0x01, 0x04, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0xaf, + 0x00, 0x02, 0x36, 0x37, 0x04, 0xff, 0x14, 0x05, + 0x11, 0x03, 0x01, 0x01, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x00, + 0x00, 0x00, 0x41, 0x00, 0x00, 0x2f, 0x30, 0x00, + 0xff, 0x00, 0x06, 0x13, 0x02, 0x01, 0x01, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x02, 0x00, 0x00, 0x00, 0x8a, 0x02, 0x02, + 0x31, 0x26, 0x00, 0xff, 0x00, 0x03, 0x0c, 0x07, + 0x01, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xda, 0x02, 0x00, 0x2d, 0x2e, 0x00, 0xff, 0x00, + 0x05, 0x07, 0x0a, 0x01, 0x01, 0x08, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, + 0x00, 0x00, 0x00, 0xdc, 0x05, 0x00, 0x40, 0x41, + 0x00, 0x07, 0x00, 0x04, 0x0f, 0x06, 0x02, 0x01, + 0x08, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0xcf, 0x03, + 0x01, 0x27, 0x28, 0x00, 0xff, 0x00, 0x05, 0x0d, + 0x06, 0x03, 0x01, 0x08, 0x00, 0x01, 0x04, 0x00, + 0x01, 0x04, 0x00, 0x00, 0x28, 0x03, 0x00, 0x00, + 0x00, 0x78, 0x05, 0x02, 0x25, 0x24, 0x00, 0xff, + 0x00, 0x04, 0x0d, 0x05, 0x02, 0x01, 0x04, 0x00, + 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xe2, 0x04, 0x00, 0x3e, + 0x3f, 0x00, 0xff, 0x00, 0x04, 0x0f, 0x04, 0x01, + 0x01, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x8a, + 0x02, 0x00, 0x2b, 0x2c, 0x00, 0xff, 0x3c, 0xff, + 0x07, 0x0a, 0x01, 0x03, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, + 0x00, 0x00, 0x10, 0x27, 0x02, 0x44, 0x45, 0x00, + 0xff, 0x64, 0xff, 0x07, 0x09, 0x01, 0x03, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x42, 0x03, 0x00, 0x00, 0x00, 0xd0, 0x07, 0x00, + 0x1f, 0xff, 0x08, 0xff, 0x00, 0x03, 0x0d, 0x07, + 0x01, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, + 0x88, 0x13, 0x02, 0x29, 0x2a, 0x02, 0xff, 0x3c, + 0x05, 0x0d, 0x07, 0x01, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, + 0x00, 0x00, 0x00, 0x88, 0x13, 0x00, 0x34, 0x35, + 0x02, 0xff, 0x00, 0x05, 0x0b, 0x08, 0x01, 0x05, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1f, + 0x00, 0x3a, 0x3b, 0xff, 0xff, 0x5a, 0x02, 0x0f, + 0x05, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x82, 0x02, 0x00, 0x00, + 0x00, 0x0e, 0x01, 0x02, 0x3c, 0x3d, 0x00, 0xff, + 0x00, 0xfe, 0x0d, 0x08, 0x01, 0x06, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x02, 0x00, 0x00, 0x00, 0xa0, 0x0f, 0x02, 0x48, + 0x47, 0x00, 0xff, 0x32, 0x04, 0x0d, 0x07, 0x01, + 0x01, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0xcf, + 0x03, 0x01, 0x33, 0x32, 0x00, 0xff, 0x28, 0x00, + 0x05, 0x23, 0x01, 0x01, 0x64, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, + 0x00, 0x00, 0xb0, 0x36, 0x02, 0xff, 0xff, 0xff, + 0xff, 0x64 +}; + +static const ByteProvider kEoB1MonsterPropertiesPC98Provider = { ARRAYSIZE(kEoB1MonsterPropertiesPC98), kEoB1MonsterPropertiesPC98 }; + +static const byte kEoB1EnemyMageSpellListPC98[10] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x05, + 0x06, 0x00 +}; + +static const ByteProvider kEoB1EnemyMageSpellListPC98Provider = { ARRAYSIZE(kEoB1EnemyMageSpellListPC98), kEoB1EnemyMageSpellListPC98 }; + +static const byte kEoB1EnemyMageSfxPC98[10] = { + 0x00, 0x55, 0x55, 0x55, 0x55, 0x62, 0x62, 0x1F, + 0x62, 0x02 +}; + +static const ByteProvider kEoB1EnemyMageSfxPC98Provider = { ARRAYSIZE(kEoB1EnemyMageSfxPC98), kEoB1EnemyMageSfxPC98 }; + +static const byte kEoB1BeholderSpellListPC98[4] = { + 0x02, 0x0A, 0x0B, 0x62 +}; + +static const ByteProvider kEoB1BeholderSpellListPC98Provider = { ARRAYSIZE(kEoB1BeholderSpellListPC98), kEoB1BeholderSpellListPC98 }; + +static const byte kEoB1BeholderSfxPC98[4] = { + 0x62, 0x53, 0x40, 0x00 +}; + +static const ByteProvider kEoB1BeholderSfxPC98Provider = { ARRAYSIZE(kEoB1BeholderSfxPC98), kEoB1BeholderSfxPC98 }; + +static const byte kEoB1NpcShpDataPC98[76] = { + 0x00, 0x00, 0x06, 0x40, 0x06, 0x00, 0x07, 0x48, + 0x0d, 0x00, 0x06, 0x30, 0x13, 0x00, 0x05, 0x38, + 0x18, 0x00, 0x05, 0x38, 0x1d, 0x00, 0x05, 0x38, + 0x22, 0x00, 0x06, 0x48, 0x00, 0x48, 0x06, 0x56, + 0x06, 0x48, 0x05, 0x40, 0x0b, 0x48, 0x05, 0x40, + 0x10, 0x48, 0x05, 0x30, 0x06, 0x88, 0x03, 0x18, + 0x09, 0x88, 0x03, 0x18, 0x0c, 0x88, 0x03, 0x18, + 0x0f, 0x88, 0x03, 0x18, 0x12, 0x88, 0x03, 0x18, + 0x15, 0x88, 0x03, 0x18, 0x18, 0x48, 0x06, 0x58, + 0x1e, 0x48, 0x0a, 0x48 +}; + +static const ByteProvider kEoB1NpcShpDataPC98Provider = { ARRAYSIZE(kEoB1NpcShpDataPC98), kEoB1NpcShpDataPC98 }; + +static const byte kEoB1NpcSubShpIndex1PC98[6] = { + 0x09, 0x08, 0x08, 0x09, 0x09, 0x0A +}; + +static const ByteProvider kEoB1NpcSubShpIndex1PC98Provider = { ARRAYSIZE(kEoB1NpcSubShpIndex1PC98), kEoB1NpcSubShpIndex1PC98 }; + +static const byte kEoB1NpcSubShpIndex2PC98[6] = { + 0x0D, 0x0B, 0x0C, 0x0E, 0x0F, 0x10 +}; + +static const ByteProvider kEoB1NpcSubShpIndex2PC98Provider = { ARRAYSIZE(kEoB1NpcSubShpIndex2PC98), kEoB1NpcSubShpIndex2PC98 }; + +static const byte kEoB1NpcSubShpYPC98[6] = { + 0x34, 0x31, 0x31, 0x34, 0x34, 0x45 +}; + +static const ByteProvider kEoB1NpcSubShpYPC98Provider = { ARRAYSIZE(kEoB1NpcSubShpYPC98), kEoB1NpcSubShpYPC98 }; + +static const char *const kEoB1EnchantedStringPC98[1] = { + "%s+%d" +}; + +static const StringListProvider kEoB1EnchantedStringPC98Provider = { ARRAYSIZE(kEoB1EnchantedStringPC98), kEoB1EnchantedStringPC98 }; + +static const byte kEoB1SpellLevelsMagePC98[26] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, + 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x05, 0x05, + 0x05, 0x00 +}; + +static const ByteProvider kEoB1SpellLevelsMagePC98Provider = { ARRAYSIZE(kEoB1SpellLevelsMagePC98), kEoB1SpellLevelsMagePC98 }; + +static const byte kEoB1SpellLevelsClericPC98[25] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x01, + 0x00 +}; + +static const ByteProvider kEoB1SpellLevelsClericPC98Provider = { ARRAYSIZE(kEoB1SpellLevelsClericPC98), kEoB1SpellLevelsClericPC98 }; + +static const byte kEoB1NumSpellsClericPC98[50] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x02, 0x00, 0x00, 0x00, 0x03, 0x03, 0x01, 0x00, + 0x00, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, + 0x02, 0x01, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x01, 0x04, 0x04, 0x03, + 0x03, 0x02 +}; + +static const ByteProvider kEoB1NumSpellsClericPC98Provider = { ARRAYSIZE(kEoB1NumSpellsClericPC98), kEoB1NumSpellsClericPC98 }; + +static const byte kEoB1NumSpellsWisAdjPC98[40] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, + 0x01, 0x01, 0x00, 0x03, 0x02, 0x01, 0x02, 0x00 +}; + +static const ByteProvider kEoB1NumSpellsWisAdjPC98Provider = { ARRAYSIZE(kEoB1NumSpellsWisAdjPC98), kEoB1NumSpellsWisAdjPC98 }; + +static const byte kEoB1NumSpellsPalPC98[60] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x02, + 0x02, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB1NumSpellsPalPC98Provider = { ARRAYSIZE(kEoB1NumSpellsPalPC98), kEoB1NumSpellsPalPC98 }; + +static const byte kEoB1NumSpellsMagePC98[55] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x01, 0x00, + 0x00, 0x04, 0x02, 0x02, 0x00, 0x00, 0x04, 0x03, + 0x02, 0x01, 0x00, 0x04, 0x03, 0x03, 0x02, 0x00, + 0x04, 0x03, 0x03, 0x02, 0x01, 0x04, 0x04, 0x03, + 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x03 +}; + +static const ByteProvider kEoB1NumSpellsMagePC98Provider = { ARRAYSIZE(kEoB1NumSpellsMagePC98), kEoB1NumSpellsMagePC98 }; + +static const uint32 kEoB1ExperienceTable0PC98[12] = { + 0x00000000, 0x000007D0, 0x00000FA0, 0x00001F40, 0x00003E80, 0x00007D00, 0x0000FA00, 0x0001E848, + 0x0003D090, 0x0007A120, 0x000B71B0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable0PC98Provider = { ARRAYSIZE(kEoB1ExperienceTable0PC98), kEoB1ExperienceTable0PC98 }; + +static const uint32 kEoB1ExperienceTable1PC98[12] = { + 0x00000000, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x0000EA60, 0x00015F90, + 0x00020F58, 0x0003D090, 0x0005B8D8, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable1PC98Provider = { ARRAYSIZE(kEoB1ExperienceTable1PC98), kEoB1ExperienceTable1PC98 }; + +static const uint32 kEoB1ExperienceTable2PC98[11] = { + 0x00000000, 0x000005DC, 0x00000BB8, 0x00001770, 0x000032C8, 0x00006B6C, 0x0000D6D8, 0x0001ADB0, + 0x00036EE8, 0x0006DDD0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable2PC98Provider = { ARRAYSIZE(kEoB1ExperienceTable2PC98), kEoB1ExperienceTable2PC98 }; + +static const uint32 kEoB1ExperienceTable3PC98[12] = { + 0x00000000, 0x000004E2, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x00011170, + 0x0001ADB0, 0x00027100, 0x00035B60, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable3PC98Provider = { ARRAYSIZE(kEoB1ExperienceTable3PC98), kEoB1ExperienceTable3PC98 }; + +static const uint32 kEoB1ExperienceTable4PC98[12] = { + 0x00000000, 0x000008CA, 0x00001194, 0x00002328, 0x00004650, 0x00008CA0, 0x000124F8, 0x000249F0, + 0x000493E0, 0x000927C0, 0x000DBBA0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable4PC98Provider = { ARRAYSIZE(kEoB1ExperienceTable4PC98), kEoB1ExperienceTable4PC98 }; + +static const byte kEoB1ExpObjectTblIndexPC98[9] = { + 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, + 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTblIndexPC98Provider = { ARRAYSIZE(kEoB1ExpObjectTblIndexPC98), kEoB1ExpObjectTblIndexPC98 }; + +static const byte kEoB1ExpObjectShpStartPC98[4] = { + 0x07, 0x0C, 0x0F, 0x12 +}; + +static const ByteProvider kEoB1ExpObjectShpStartPC98Provider = { ARRAYSIZE(kEoB1ExpObjectShpStartPC98), kEoB1ExpObjectShpStartPC98 }; + +static const byte kEoB1ExpObjectTbl1PC98[13] = { + 0x0F, 0x05, 0x0F, 0x05, 0x06, 0x05, 0x06, 0x08, + 0x06, 0x08, 0x06, 0x08, 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTbl1PC98Provider = { ARRAYSIZE(kEoB1ExpObjectTbl1PC98), kEoB1ExpObjectTbl1PC98 }; + +static const byte kEoB1ExpObjectTbl2PC98[10] = { + 0x0F, 0x09, 0x0F, 0x09, 0x02, 0x0A, 0x0B, 0x0A, + 0x0B, 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTbl2PC98Provider = { ARRAYSIZE(kEoB1ExpObjectTbl2PC98), kEoB1ExpObjectTbl2PC98 }; + +static const byte kEoB1ExpObjectTbl3PC98[11] = { + 0x05, 0x03, 0x05, 0x03, 0x03, 0x03, 0x03, 0x0B, + 0x03, 0x0B, 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTbl3PC98Provider = { ARRAYSIZE(kEoB1ExpObjectTbl3PC98), kEoB1ExpObjectTbl3PC98 }; + +static const byte kEoB1ExpObjectYPC98[4] = { + 0x77, 0x67, 0x4F, 0x3F +}; + +static const ByteProvider kEoB1ExpObjectYPC98Provider = { ARRAYSIZE(kEoB1ExpObjectYPC98), kEoB1ExpObjectYPC98 }; + +static const byte kEoB1SparkDefStepsPC98[8] = { + 0x40, 0x90, 0xE4, 0xB9, 0x6E, 0x1B, 0x06, 0x01 +}; + +static const ByteProvider kEoB1SparkDefStepsPC98Provider = { ARRAYSIZE(kEoB1SparkDefStepsPC98), kEoB1SparkDefStepsPC98 }; + +static const byte kEoB1SparkDefSubStepsPC98[4] = { + 0xC0, 0x30, 0x0C, 0x03 +}; + +static const ByteProvider kEoB1SparkDefSubStepsPC98Provider = { ARRAYSIZE(kEoB1SparkDefSubStepsPC98), kEoB1SparkDefSubStepsPC98 }; + +static const byte kEoB1SparkDefShiftPC98[4] = { + 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB1SparkDefShiftPC98Provider = { ARRAYSIZE(kEoB1SparkDefShiftPC98), kEoB1SparkDefShiftPC98 }; + +static const byte kEoB1SparkDefAddPC98[8] = { + 0x08, 0x06, 0x1C, 0x14, 0x0D, 0x18, 0x0D, 0x0F +}; + +static const ByteProvider kEoB1SparkDefAddPC98Provider = { ARRAYSIZE(kEoB1SparkDefAddPC98), kEoB1SparkDefAddPC98 }; + +static const byte kEoB1SparkDefXPC98[6] = { + 0x17, 0x20, 0x17, 0x20, 0x17, 0x20 +}; + +static const ByteProvider kEoB1SparkDefXPC98Provider = { ARRAYSIZE(kEoB1SparkDefXPC98), kEoB1SparkDefXPC98 }; + +static const byte kEoB1SparkDefYPC98[6] = { + 0x02, 0x02, 0x34, 0x34, 0x66, 0x66 +}; + +static const ByteProvider kEoB1SparkDefYPC98Provider = { ARRAYSIZE(kEoB1SparkDefYPC98), kEoB1SparkDefYPC98 }; + +static const uint32 kEoB1SparkOfFlags1PC98[11] = { + 0x40000000, 0x95000000, 0xEA550000, 0xBFAA5400, 0x6AFFA954, 0x15AAFEA9, 0x0055ABFE, 0x000056AB, + 0x00000156, 0x00000001, 0x00000000 +}; + +static const Uint32Provider kEoB1SparkOfFlags1PC98Provider = { ARRAYSIZE(kEoB1SparkOfFlags1PC98), kEoB1SparkOfFlags1PC98 }; + +static const uint32 kEoB1SparkOfFlags2PC98[16] = { + 0xC0000000, 0x30000000, 0x0C000000, 0x03000000, 0x00C00000, 0x00300000, 0x000C0000, 0x00030000, + 0x0000C000, 0x00003000, 0x00000C00, 0x00000300, 0x000000C0, 0x00000030, 0x0000000C, 0x00000003 +}; + +static const Uint32Provider kEoB1SparkOfFlags2PC98Provider = { ARRAYSIZE(kEoB1SparkOfFlags2PC98), kEoB1SparkOfFlags2PC98 }; + +static const byte kEoB1SparkOfShiftPC98[16] = { + 0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x12, 0x10, + 0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB1SparkOfShiftPC98Provider = { ARRAYSIZE(kEoB1SparkOfShiftPC98), kEoB1SparkOfShiftPC98 }; + +static const byte kEoB1SparkOfXPC98[16] = { + 0x50, 0x70, 0x30, 0x68, 0x20, 0x60, 0x38, 0x78, + 0x80, 0x48, 0x58, 0x28, 0x60, 0x40, 0x70, 0x48 +}; + +static const ByteProvider kEoB1SparkOfXPC98Provider = { ARRAYSIZE(kEoB1SparkOfXPC98), kEoB1SparkOfXPC98 }; + +static const byte kEoB1SparkOfYPC98[16] = { + 0x31, 0x2B, 0x48, 0x17, 0x16, 0x48, 0x35, 0x1B, + 0x43, 0x2E, 0x24, 0x28, 0x38, 0x1C, 0x16, 0x44 +}; + +static const ByteProvider kEoB1SparkOfYPC98Provider = { ARRAYSIZE(kEoB1SparkOfYPC98), kEoB1SparkOfYPC98 }; + +static const byte kEoB1SpellPropertiesPC98[1007] = { + 0x6a, 0x18, 0xaf, 0x2b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6b, 0x18, 0xaf, 0x2b, 0x01, + 0xfd, 0x0f, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x7b, 0x10, 0x2e, 0x1b, 0x5c, 0x00, 0x74, 0x18, + 0xaf, 0x2b, 0x00, 0x8e, 0x10, 0x2e, 0x1b, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, + 0x01, 0x87, 0x18, 0xaf, 0x2b, 0x08, 0x61, 0x11, + 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x11, + 0x2e, 0x1b, 0x5f, 0x00, 0x9c, 0x18, 0xaf, 0x2b, + 0x00, 0xd0, 0x11, 0x2e, 0x1b, 0xf0, 0x11, 0x2e, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xaf, 0x18, 0xaf, 0x2b, 0x04, 0x22, + 0x12, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x12, 0x2e, 0x1b, 0x5c, 0x00, 0xb8, 0x18, 0xaf, + 0x2b, 0x02, 0x9c, 0x12, 0x2e, 0x1b, 0x00, 0x00, + 0x00, 0x00, 0x43, 0x13, 0x2e, 0x1b, 0x58, 0x00, + 0xcf, 0x18, 0xaf, 0x2b, 0x01, 0x8f, 0x13, 0x2e, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x13, 0x2e, + 0x1b, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, + 0xaf, 0x2b, 0x00, 0xd2, 0x13, 0x2e, 0x1b, 0xf3, + 0x13, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x01, 0xfb, 0x18, 0xaf, 0x2b, 0x00, 0x27, 0x14, + 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x19, 0xaf, 0x2b, + 0x01, 0x2c, 0x14, 0x2e, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0x29, + 0x19, 0xaf, 0x2b, 0x00, 0x36, 0x15, 0x2e, 0x1b, + 0x57, 0x15, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x62, 0x01, 0x38, 0x19, 0xaf, 0x2b, 0x00, 0x85, + 0x15, 0x2e, 0x1b, 0xa6, 0x15, 0x2e, 0x1b, 0x00, + 0x00, 0x00, 0x00, 0x63, 0x01, 0x49, 0x19, 0xaf, + 0x2b, 0x08, 0xd4, 0x15, 0x2e, 0x1b, 0x00, 0x00, + 0x00, 0x00, 0x39, 0x16, 0x2e, 0x1b, 0x64, 0x00, + 0x52, 0x19, 0xaf, 0x2b, 0x00, 0x4f, 0x16, 0x2e, + 0x1b, 0x70, 0x16, 0x2e, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x65, 0x01, 0x65, 0x19, 0xaf, 0x2b, 0x08, + 0x24, 0x17, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0xb1, 0x13, 0x2e, 0x1b, 0x5e, 0x00, 0x90, 0x19, + 0xaf, 0x2b, 0x00, 0x5d, 0x17, 0x2e, 0x1b, 0x7e, + 0x17, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x01, 0xa5, 0x19, 0xaf, 0x2b, 0x02, 0xac, 0x17, + 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x18, + 0x2e, 0x1b, 0x66, 0x00, 0xba, 0x19, 0xaf, 0x2b, + 0x00, 0x6a, 0x18, 0x2e, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x01, 0xc1, + 0x19, 0xaf, 0x2b, 0x00, 0x2c, 0x19, 0x2e, 0x1b, + 0x4d, 0x19, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x59, 0x01, 0xd2, 0x19, 0xaf, 0x2b, 0x01, 0xe5, + 0x19, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x5d, 0x00, 0xe1, 0x19, 0xaf, + 0x2b, 0x00, 0x5d, 0x1a, 0x2e, 0x1b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xee, 0x19, 0xaf, 0x2b, 0x00, 0x62, 0x1a, 0x2e, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x76, 0x01, 0x05, 0x1a, 0xaf, 0x2b, 0x00, + 0xa1, 0x1b, 0x2e, 0x1b, 0xc2, 0x1b, 0x2e, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x65, 0x01, 0x1a, 0x1a, + 0xaf, 0x2b, 0x08, 0x76, 0x1c, 0x2e, 0x1b, 0x00, + 0x00, 0x00, 0x00, 0xbb, 0x1c, 0x2e, 0x1b, 0x5b, + 0x00, 0x21, 0x1a, 0xaf, 0x2b, 0x01, 0xc8, 0x1c, + 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x68, 0x00, 0x38, 0x1a, 0xaf, 0x2b, + 0x00, 0xeb, 0x1c, 0x2e, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x01, 0x51, + 0x1a, 0xaf, 0x2b, 0x08, 0x61, 0x11, 0x2e, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0xaa, 0x11, 0x2e, 0x1b, + 0x5f, 0x00, 0x66, 0x1a, 0xaf, 0x2b, 0x01, 0x02, + 0x1d, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x37, + 0x1d, 0x2e, 0x1b, 0x6e, 0x00, 0x7f, 0x1a, 0xaf, + 0x2b, 0x01, 0x4d, 0x1d, 0x2e, 0x1b, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x1e, 0x2e, 0x1b, 0x5b, 0x00, + 0x86, 0x1a, 0xaf, 0x2b, 0x02, 0xfe, 0x1e, 0x2e, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0x43, 0x13, 0x2e, + 0x1b, 0x63, 0x00, 0x99, 0x1a, 0xaf, 0x2b, 0x00, + 0x4f, 0x16, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x65, 0x01, 0xac, 0x1a, + 0xaf, 0x2b, 0x01, 0x3b, 0x1e, 0x2e, 0x1b, 0x00, + 0x00, 0x00, 0x00, 0x98, 0x1e, 0x2e, 0x1b, 0x6f, + 0x00, 0xbd, 0x1a, 0xaf, 0x2b, 0x08, 0x8c, 0x1f, + 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0xd0, 0x1a, 0xaf, 0x2b, + 0x01, 0x2c, 0x14, 0x2e, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0xe5, + 0x1a, 0xaf, 0x2b, 0x04, 0xab, 0x1f, 0x2e, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0xeb, 0x1f, 0x2e, 0x1b, + 0x71, 0x00, 0xfc, 0x1a, 0xaf, 0x2b, 0x08, 0x0c, + 0x20, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x20, 0x2e, 0x1b, 0x5b, 0x00, 0x07, 0x1b, 0xaf, + 0x2b, 0x08, 0x4e, 0x20, 0x2e, 0x1b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x00, + 0x1c, 0x1b, 0xaf, 0x2b, 0x01, 0x9c, 0x20, 0x2e, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x69, 0x00, 0x37, 0x1b, 0xaf, 0x2b, 0x00, + 0xc3, 0x20, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x52, 0x1b, + 0xaf, 0x2b, 0x01, 0xdb, 0x20, 0x2e, 0x1b, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, + 0x00, 0x6d, 0x1b, 0xaf, 0x2b, 0x08, 0x03, 0x21, + 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x61, 0x21, + 0x2e, 0x1b, 0x6e, 0x00, 0x8a, 0x1b, 0xaf, 0x2b, + 0x04, 0x9a, 0x21, 0x2e, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0xa7, + 0x1b, 0xaf, 0x2b, 0x01, 0xa4, 0x21, 0x2e, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0xc6, 0x1b, 0xaf, 0x2b, 0x00, 0xcb, + 0x21, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x01, 0xe5, 0x1b, 0xaf, + 0x2b, 0x00, 0xe3, 0x21, 0x2e, 0x1b, 0x04, 0x22, + 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x62, 0x01, + 0xfa, 0x1b, 0xaf, 0x2b, 0x01, 0x26, 0x22, 0x2e, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x75, 0x00, 0x09, 0x1c, 0xaf, 0x2b, 0x01, + 0xa4, 0x23, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x1c, 0x1c, + 0xaf, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, + 0x22, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x75, + 0x00, 0x1d, 0x1c, 0xaf, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x8a, 0x22, 0x2e, 0x1b, 0x00, 0x00, + 0x00, 0x00, 0x75, 0x00, 0x1e, 0x1c, 0xaf, 0x2b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x23, 0x2e, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0x75, 0x00 +}; + +static const ByteProvider kEoB1SpellPropertiesPC98Provider = { ARRAYSIZE(kEoB1SpellPropertiesPC98), kEoB1SpellPropertiesPC98 }; + +static const byte kEoB1MagicFlightPropsPC98[80] = { + 0x04, 0xff, 0x41, 0x09, 0x0a, 0xff, 0x04, 0x05, + 0x0d, 0xff, 0x7a, 0x06, 0x0e, 0xff, 0x0c, 0x05, + 0x10, 0xff, 0x4a, 0x0a, 0x12, 0x06, 0x38, 0x07, + 0x15, 0x06, 0x7a, 0x08, 0x19, 0xff, 0x4a, 0x0a, + 0x2f, 0xff, 0x4b, 0x06, 0x32, 0xff, 0x09, 0x07, + 0x33, 0xff, 0x09, 0x0a, 0x34, 0xff, 0x09, 0x0a, + 0x01, 0x01, 0x00, 0x00, 0x03, 0xfd, 0x02, 0xfe, + 0x01, 0xff, 0x00, 0x00, 0x98, 0x00, 0x18, 0x00, + 0x78, 0x00, 0x38, 0x00, 0x58, 0x00, 0x40, 0x40, + 0x38, 0x38, 0x38, 0x38, 0xe0, 0x20, 0x01, 0xff +}; + +static const ByteProvider kEoB1MagicFlightPropsPC98Provider = { ARRAYSIZE(kEoB1MagicFlightPropsPC98), kEoB1MagicFlightPropsPC98 }; + +static const byte kEoB1TurnUndeadEffectPC98[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 kEoB1TurnUndeadEffectPC98Provider = { ARRAYSIZE(kEoB1TurnUndeadEffectPC98), kEoB1TurnUndeadEffectPC98 }; + +static const byte kEoB1BurningHandsDestPC98[8] = { + 0x02, 0x03, 0x00, 0x02, 0x00, 0x01, 0x01, 0x03 +}; + +static const ByteProvider kEoB1BurningHandsDestPC98Provider = { ARRAYSIZE(kEoB1BurningHandsDestPC98), kEoB1BurningHandsDestPC98 }; + +static const byte kEoB1ConeOfColdDest1PC98[7] = { + 0xE0, 0xC0, 0xC1, 0xBF, 0xA0, 0x9F, 0xA1 +}; + +static const ByteProvider kEoB1ConeOfColdDest1PC98Provider = { ARRAYSIZE(kEoB1ConeOfColdDest1PC98), kEoB1ConeOfColdDest1PC98 }; + +static const byte kEoB1ConeOfColdDest2PC98[7] = { + 0x01, 0x02, 0xE2, 0x22, 0x03, 0xE3, 0x23 +}; + +static const ByteProvider kEoB1ConeOfColdDest2PC98Provider = { ARRAYSIZE(kEoB1ConeOfColdDest2PC98), kEoB1ConeOfColdDest2PC98 }; + +static const byte kEoB1ConeOfColdDest3PC98[7] = { + 0x20, 0x40, 0x3F, 0x41, 0x60, 0x5F, 0x61 +}; + +static const ByteProvider kEoB1ConeOfColdDest3PC98Provider = { ARRAYSIZE(kEoB1ConeOfColdDest3PC98), kEoB1ConeOfColdDest3PC98 }; + +static const byte kEoB1ConeOfColdDest4PC98[7] = { + 0xFF, 0xFE, 0x1E, 0xDE, 0xFD, 0x1D, 0xDD +}; + +static const ByteProvider kEoB1ConeOfColdDest4PC98Provider = { ARRAYSIZE(kEoB1ConeOfColdDest4PC98), kEoB1ConeOfColdDest4PC98 }; + +static const byte kEoB1ConeOfColdGfxTblPC98[8] = { + 0x0F, 0x09, 0x0F, 0x09, 0x02, 0x0A, 0x02, 0x00 +}; + +static const ByteProvider kEoB1ConeOfColdGfxTblPC98Provider = { ARRAYSIZE(kEoB1ConeOfColdGfxTblPC98), kEoB1ConeOfColdGfxTblPC98 }; + +static const byte kEoB1DscDoorShapeIndexPC98[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03 +}; + +static const ByteProvider kEoB1DscDoorShapeIndexPC98Provider = { ARRAYSIZE(kEoB1DscDoorShapeIndexPC98), kEoB1DscDoorShapeIndexPC98 }; + +static const byte kEoB1WllFlagPresetPC98[25] = { + 0x07, 0x00, 0x40, 0xA8, 0x88, 0x88, 0x88, 0x9F, + 0xA8, 0x88, 0x88, 0x88, 0x9F, 0xAA, 0x8A, 0x8A, + 0x8A, 0x9F, 0xAA, 0x8A, 0x8A, 0x8A, 0x9F, 0x03, + 0x03 +}; + +static const ByteProvider kEoB1WllFlagPresetPC98Provider = { ARRAYSIZE(kEoB1WllFlagPresetPC98), kEoB1WllFlagPresetPC98 }; + +static const uint16 kEoB1DscShapeCoordsPC98[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 kEoB1DscShapeCoordsPC98Provider = { ARRAYSIZE(kEoB1DscShapeCoordsPC98), kEoB1DscShapeCoordsPC98 }; + +static const byte kEoB1DscDoorScaleOffsPC98[32] = { + 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, 0x1E, 0x1F +}; + +static const ByteProvider kEoB1DscDoorScaleOffsPC98Provider = { ARRAYSIZE(kEoB1DscDoorScaleOffsPC98), kEoB1DscDoorScaleOffsPC98 }; + +static const byte kEoB1DscDoorScaleMult1PC98[4] = { + 0x08, 0x0C, 0x12, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult1PC98Provider = { ARRAYSIZE(kEoB1DscDoorScaleMult1PC98), kEoB1DscDoorScaleMult1PC98 }; + +static const byte kEoB1DscDoorScaleMult2PC98[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult2PC98Provider = { ARRAYSIZE(kEoB1DscDoorScaleMult2PC98), kEoB1DscDoorScaleMult2PC98 }; + +static const byte kEoB1DscDoorScaleMult3PC98[4] = { + 0x04, 0x06, 0x09, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult3PC98Provider = { ARRAYSIZE(kEoB1DscDoorScaleMult3PC98), kEoB1DscDoorScaleMult3PC98 }; + +static const byte kEoB1DscDoorScaleMult4PC98[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult4PC98Provider = { ARRAYSIZE(kEoB1DscDoorScaleMult4PC98), kEoB1DscDoorScaleMult4PC98 }; + +static const byte kEoB1DscDoorScaleMult5PC98[4] = { + 0x07, 0x0B, 0x0E, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult5PC98Provider = { ARRAYSIZE(kEoB1DscDoorScaleMult5PC98), kEoB1DscDoorScaleMult5PC98 }; + +static const byte kEoB1DscDoorScaleMult6PC98[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult6PC98Provider = { ARRAYSIZE(kEoB1DscDoorScaleMult6PC98), kEoB1DscDoorScaleMult6PC98 }; + +static const byte kEoB1DscDoorXEPC98[32] = { + 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, 0x1E, 0x1F +}; + +static const ByteProvider kEoB1DscDoorXEPC98Provider = { ARRAYSIZE(kEoB1DscDoorXEPC98), kEoB1DscDoorXEPC98 }; + +static const byte kEoB1DscDoorY1PC98[4] = { + 0x3A, 0x47, 0x56, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY1PC98Provider = { ARRAYSIZE(kEoB1DscDoorY1PC98), kEoB1DscDoorY1PC98 }; + +static const byte kEoB1DscDoorY3PC98[4] = { + 0x20, 0x20, 0x18, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY3PC98Provider = { ARRAYSIZE(kEoB1DscDoorY3PC98), kEoB1DscDoorY3PC98 }; + +static const byte kEoB1DscDoorY4PC98[4] = { + 0x1E, 0x18, 0x10, 0x30 +}; + +static const ByteProvider kEoB1DscDoorY4PC98Provider = { ARRAYSIZE(kEoB1DscDoorY4PC98), kEoB1DscDoorY4PC98 }; + +static const byte kEoB1DscDoorY5PC98[4] = { + 0x30, 0x34, 0x3B, 0x3A +}; + +static const ByteProvider kEoB1DscDoorY5PC98Provider = { ARRAYSIZE(kEoB1DscDoorY5PC98), kEoB1DscDoorY5PC98 }; + +static const byte kEoB1DscDoorY6PC98[4] = { + 0x3A, 0x45, 0x5A, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY6PC98Provider = { ARRAYSIZE(kEoB1DscDoorY6PC98), kEoB1DscDoorY6PC98 }; + +static const byte kEoB1DscDoorY7PC98[4] = { + 0x3B, 0x47, 0x58, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY7PC98Provider = { ARRAYSIZE(kEoB1DscDoorY7PC98), kEoB1DscDoorY7PC98 }; + +static const uint16 kEoB1DscDoorCoordsExtPC98[36] = { + 0x0000, 0x0000, 0xFFE8, 0x0010, 0x0020, 0x0040, 0x0048, 0x0068, + 0x0070, 0x0090, 0x00A0, 0x00C8, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFE8, 0x0030, 0x0038, 0x0078, 0x0080, 0x00C8, 0x0000, 0x0000, + 0xFFA8, 0x0020, 0x0028, 0x0088, 0x0090, 0x0108, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB1DscDoorCoordsExtPC98Provider = { ARRAYSIZE(kEoB1DscDoorCoordsExtPC98), kEoB1DscDoorCoordsExtPC98 }; + +static const byte kEoB1DscDoorFrameY1PC98[32] = { + 0x20, 0x18, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x18, 0x00, 0x1E, 0x18, 0x10, 0x00, + 0x3A, 0x48, 0x60, 0x78, 0x3A, 0x46, 0x56, 0x00, + 0x78, 0x78, 0x78, 0x78, 0x1F, 0x18, 0x0F, 0x00 +}; + +static const ByteProvider kEoB1DscDoorFrameY1PC98Provider = { ARRAYSIZE(kEoB1DscDoorFrameY1PC98), kEoB1DscDoorFrameY1PC98 }; + +static const byte kEoB1DscDoorFrameY2PC98[32] = { + 0x20, 0x18, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x18, 0x00, 0x1E, 0x18, 0x10, 0x00, + 0x3A, 0x48, 0x60, 0x78, 0x3A, 0x46, 0x56, 0x00, + 0x78, 0x78, 0x78, 0x78, 0x1F, 0x18, 0x0F, 0x00 +}; + +static const ByteProvider kEoB1DscDoorFrameY2PC98Provider = { ARRAYSIZE(kEoB1DscDoorFrameY2PC98), kEoB1DscDoorFrameY2PC98 }; + +static const byte kEoB1DscDoorFrameIndex1PC98[12] = { + 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x08, 0x08, + 0x08, 0x0C, 0x0C, 0x1C +}; + +static const ByteProvider kEoB1DscDoorFrameIndex1PC98Provider = { ARRAYSIZE(kEoB1DscDoorFrameIndex1PC98), kEoB1DscDoorFrameIndex1PC98 }; + +static const byte kEoB1DscDoorFrameIndex2PC98[12] = { + 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x10, 0x10, + 0x10, 0x14, 0x14, 0x18 +}; + +static const ByteProvider kEoB1DscDoorFrameIndex2PC98Provider = { ARRAYSIZE(kEoB1DscDoorFrameIndex2PC98), kEoB1DscDoorFrameIndex2PC98 }; + +static const byte kEoB1DscItemPosIndexPC98[16] = { + 0x00, 0x01, 0x02, 0x03, 0x02, 0x00, 0x03, 0x01, + 0x03, 0x02, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02 +}; + +static const ByteProvider kEoB1DscItemPosIndexPC98Provider = { ARRAYSIZE(kEoB1DscItemPosIndexPC98), kEoB1DscItemPosIndexPC98 }; + +static const uint16 kEoB1DscItemShpXPC98[18] = { + 0xFFC8, 0xFFF8, 0x0028, 0x0058, 0x0088, 0x00B8, 0x00E8, 0xFFB8, + 0x0008, 0x0058, 0x00A8, 0x00F8, 0xFFD8, 0x0058, 0x00D8, 0xFFA8, + 0x0058, 0x0108 +}; + +static const Uint16Provider kEoB1DscItemShpXPC98Provider = { ARRAYSIZE(kEoB1DscItemShpXPC98), kEoB1DscItemShpXPC98 }; + +static const byte kEoB1DscItemScaleIndexPC98[18] = { + 0xFF, 0xFF, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, + 0x25, 0x00 +}; + +static const ByteProvider kEoB1DscItemScaleIndexPC98Provider = { ARRAYSIZE(kEoB1DscItemScaleIndexPC98), kEoB1DscItemScaleIndexPC98 }; + +static const byte kEoB1DscItemTileIndexPC98[18] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x09, 0xFF, 0x0B, + 0x0C, 0x0D +}; + +static const ByteProvider kEoB1DscItemTileIndexPC98Provider = { ARRAYSIZE(kEoB1DscItemTileIndexPC98), kEoB1DscItemTileIndexPC98 }; + +static const byte kEoB1DscItemShapeMapPC98[90] = { + 0x00, 0x00, 0x00, 0x04, 0x01, 0x02, 0x03, 0x04, + 0x05, 0x06, 0x07, 0x07, 0x12, 0x06, 0x0F, 0x12, + 0x14, 0x17, 0x13, 0x11, 0x15, 0x0D, 0x09, 0x09, + 0x16, 0x1F, 0x0C, 0x23, 0x0C, 0x0C, 0x0C, 0x0B, + 0x0A, 0x1C, 0x1C, 0x1A, 0x1B, 0x21, 0x1D, 0x1D, + 0x22, 0x22, 0x22, 0x00, 0x08, 0x00, 0x25, 0x18, + 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x19, 0x23, + 0x10, 0x1E, 0x24, 0x18, 0x1C, 0x20, 0x12, 0x21, + 0x1E, 0x23, 0x1C, 0x00, 0x20, 0x11, 0x11, 0x0D, + 0x1F, 0x09, 0x09, 0x15, 0x15, 0x0F, 0x05, 0x0C, + 0x1E, 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, + 0x1B, 0x00 +}; + +static const ByteProvider kEoB1DscItemShapeMapPC98Provider = { ARRAYSIZE(kEoB1DscItemShapeMapPC98), kEoB1DscItemShapeMapPC98 }; + +static const byte kEoB1DscTelptrShpCoordsPC98[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 kEoB1DscTelptrShpCoordsPC98Provider = { ARRAYSIZE(kEoB1DscTelptrShpCoordsPC98), kEoB1DscTelptrShpCoordsPC98 }; + +static const byte kEoB1PortalSeqDataPC98[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 kEoB1PortalSeqDataPC98Provider = { ARRAYSIZE(kEoB1PortalSeqDataPC98), kEoB1PortalSeqDataPC98 }; + +static const byte kEoB1DscMonsterFrmOffsTbl1PC98[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 kEoB1DscMonsterFrmOffsTbl1PC98Provider = { ARRAYSIZE(kEoB1DscMonsterFrmOffsTbl1PC98), kEoB1DscMonsterFrmOffsTbl1PC98 }; + +static const byte kEoB1DscMonsterFrmOffsTbl2PC98[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 kEoB1DscMonsterFrmOffsTbl2PC98Provider = { ARRAYSIZE(kEoB1DscMonsterFrmOffsTbl2PC98), kEoB1DscMonsterFrmOffsTbl2PC98 }; + +static const uint16 kEoB1InvSlotXPC98[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 kEoB1InvSlotXPC98Provider = { ARRAYSIZE(kEoB1InvSlotXPC98), kEoB1InvSlotXPC98 }; + +static const byte kEoB1InvSlotYPC98[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 kEoB1InvSlotYPC98Provider = { ARRAYSIZE(kEoB1InvSlotYPC98), kEoB1InvSlotYPC98 }; + +static const uint16 kEoB1SlotValidationFlagsPC98[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 kEoB1SlotValidationFlagsPC98Provider = { ARRAYSIZE(kEoB1SlotValidationFlagsPC98), kEoB1SlotValidationFlagsPC98 }; + +static const byte kEoB1ProjectileWeaponTypesPC98[8] = { + 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x12 +}; + +static const ByteProvider kEoB1ProjectileWeaponTypesPC98Provider = { ARRAYSIZE(kEoB1ProjectileWeaponTypesPC98), kEoB1ProjectileWeaponTypesPC98 }; + +static const byte kEoB1WandTypesPC98[7] = { + 0x00, 0x12, 0x18, 0x28, 0x0D, 0xFF, 0x04 +}; + +static const ByteProvider kEoB1WandTypesPC98Provider = { ARRAYSIZE(kEoB1WandTypesPC98), kEoB1WandTypesPC98 }; + +static const byte kEoB1DrawObjPosIndexPC98[20] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x03, + 0x01, 0x04, 0x02, 0x03, 0x00, 0x01, 0x04, 0x01, + 0x03, 0x00, 0x02, 0x04 +}; + +static const ByteProvider kEoB1DrawObjPosIndexPC98Provider = { ARRAYSIZE(kEoB1DrawObjPosIndexPC98), kEoB1DrawObjPosIndexPC98 }; + +static const byte kEoB1FlightObjFlipIndexPC98[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB1FlightObjFlipIndexPC98Provider = { ARRAYSIZE(kEoB1FlightObjFlipIndexPC98), kEoB1FlightObjFlipIndexPC98 }; + +static const byte kEoB1FlightObjShpMapPC98[88] = { + 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, + 0xFF, 0xFF, 0x03, 0xFF, 0x05, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF +}; + +static const ByteProvider kEoB1FlightObjShpMapPC98Provider = { ARRAYSIZE(kEoB1FlightObjShpMapPC98), kEoB1FlightObjShpMapPC98 }; + +static const byte kEoB1FlightObjSclIndexPC98[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 kEoB1FlightObjSclIndexPC98Provider = { ARRAYSIZE(kEoB1FlightObjSclIndexPC98), kEoB1FlightObjSclIndexPC98 }; + +static const byte kEoB1DscShapeIndexPC98[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 kEoB1DscShapeIndexPC98Provider = { ARRAYSIZE(kEoB1DscShapeIndexPC98), kEoB1DscShapeIndexPC98 }; + +static const uint16 kEoB1DscXPC98[18] = { + 0xFF70, 0xFFA0, 0xFFD0, 0x0000, 0x0030, 0x0060, 0x0090, 0xFF60, + 0xFFB0, 0x0000, 0x0050, 0x00A0, 0xFF80, 0x0000, 0x0080, 0x0000, + 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB1DscXPC98Provider = { ARRAYSIZE(kEoB1DscXPC98), kEoB1DscXPC98 }; + +static const byte kEoB1DscTileIndexPC98[18] = { + 0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07, + 0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F, + 0x11, 0x10 +}; + +static const ByteProvider kEoB1DscTileIndexPC98Provider = { ARRAYSIZE(kEoB1DscTileIndexPC98), kEoB1DscTileIndexPC98 }; + +static const byte kEoB1DscDimData1PC98[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 kEoB1DscDimData1PC98Provider = { ARRAYSIZE(kEoB1DscDimData1PC98), kEoB1DscDimData1PC98 }; + +static const byte kEoB1DscDimData2PC98[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 kEoB1DscDimData2PC98Provider = { ARRAYSIZE(kEoB1DscDimData2PC98), kEoB1DscDimData2PC98 }; + +static const byte kEoB1DscBlockMapPC98[12] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB1DscBlockMapPC98Provider = { ARRAYSIZE(kEoB1DscBlockMapPC98), kEoB1DscBlockMapPC98 }; + +static const byte kEoB1DscDimMapPC98[18] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, + 0x03, 0x03 +}; + +static const ByteProvider kEoB1DscDimMapPC98Provider = { ARRAYSIZE(kEoB1DscDimMapPC98), kEoB1DscDimMapPC98 }; + +static const byte kEoB1DscBlockIndexPC98[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 kEoB1DscBlockIndexPC98Provider = { ARRAYSIZE(kEoB1DscBlockIndexPC98), kEoB1DscBlockIndexPC98 }; + +static const byte kEoB1ClassModifierFlagsPC98[15] = { + 0x01, 0x01, 0x05, 0x02, 0x04, 0x08, 0x05, 0x09, + 0x03, 0x0B, 0x0A, 0x0C, 0x07, 0x05, 0x06 +}; + +static const ByteProvider kEoB1ClassModifierFlagsPC98Provider = { ARRAYSIZE(kEoB1ClassModifierFlagsPC98), kEoB1ClassModifierFlagsPC98 }; + +static const byte kEoB1MonsterStepTable01PC98[4] = { + 0xE0, 0x01, 0x20, 0xFF +}; + +static const ByteProvider kEoB1MonsterStepTable01PC98Provider = { ARRAYSIZE(kEoB1MonsterStepTable01PC98), kEoB1MonsterStepTable01PC98 }; + +static const byte kEoB1MonsterStepTable2PC98[8] = { + 0x07, 0xFA, 0x05, 0xFC, 0x03, 0xFE, 0x01, 0x00 +}; + +static const ByteProvider kEoB1MonsterStepTable2PC98Provider = { ARRAYSIZE(kEoB1MonsterStepTable2PC98), kEoB1MonsterStepTable2PC98 }; + +static const byte kEoB1MonsterStepTable3PC98[8] = { + 0xF9, 0x06, 0xFB, 0x04, 0xFD, 0x02, 0xFF, 0x00 +}; + +static const ByteProvider kEoB1MonsterStepTable3PC98Provider = { ARRAYSIZE(kEoB1MonsterStepTable3PC98), kEoB1MonsterStepTable3PC98 }; + +static const byte kEoB1MonsterCloseAttPosTable1PC98[4] = { + 0x00, 0x01, 0x03, 0x02 +}; + +static const ByteProvider kEoB1MonsterCloseAttPosTable1PC98Provider = { ARRAYSIZE(kEoB1MonsterCloseAttPosTable1PC98), kEoB1MonsterCloseAttPosTable1PC98 }; + +static const byte kEoB1MonsterCloseAttPosTable21PC98[8] = { + 0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x01, 0x03 +}; + +static const ByteProvider kEoB1MonsterCloseAttPosTable21PC98Provider = { ARRAYSIZE(kEoB1MonsterCloseAttPosTable21PC98), kEoB1MonsterCloseAttPosTable21PC98 }; + +static const byte kEoB1MonsterCloseAttChkTable1PC98[16] = { + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00 +}; + +static const ByteProvider kEoB1MonsterCloseAttChkTable1PC98Provider = { ARRAYSIZE(kEoB1MonsterCloseAttChkTable1PC98), kEoB1MonsterCloseAttChkTable1PC98 }; + +static const byte kEoB1MonsterCloseAttChkTable2PC98[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB1MonsterCloseAttChkTable2PC98Provider = { ARRAYSIZE(kEoB1MonsterCloseAttChkTable2PC98), kEoB1MonsterCloseAttChkTable2PC98 }; + +static const byte kEoB1MonsterCloseAttDstTable1PC98[16] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x00, 0x01, 0x02, 0x03, 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB1MonsterCloseAttDstTable1PC98Provider = { ARRAYSIZE(kEoB1MonsterCloseAttDstTable1PC98), kEoB1MonsterCloseAttDstTable1PC98 }; + +static const byte kEoB1MonsterCloseAttDstTable2PC98[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 kEoB1MonsterCloseAttDstTable2PC98Provider = { ARRAYSIZE(kEoB1MonsterCloseAttDstTable2PC98), kEoB1MonsterCloseAttDstTable2PC98 }; + +static const byte kEoB1MonsterProximityTablePC98[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 kEoB1MonsterProximityTablePC98Provider = { ARRAYSIZE(kEoB1MonsterProximityTablePC98), kEoB1MonsterProximityTablePC98 }; + +static const byte kEoB1FindBlockMonstersTablePC98[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 kEoB1FindBlockMonstersTablePC98Provider = { ARRAYSIZE(kEoB1FindBlockMonstersTablePC98), kEoB1FindBlockMonstersTablePC98 }; + +static const byte kEoB1MonsterDirChangeTablePC98[48] = { + 0xFF, 0x06, 0x02, 0xFF, 0x04, 0x05, 0x03, 0xFF, + 0x00, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xFF, 0xE0, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, + 0x01, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, + 0xC0, 0xFF, 0xA0, 0xFF, 0x02, 0x00, 0x03, 0x00, + 0x40, 0x00, 0x60, 0x00, 0xFE, 0xFF, 0xFD, 0xFF +}; + +static const ByteProvider kEoB1MonsterDirChangeTablePC98Provider = { ARRAYSIZE(kEoB1MonsterDirChangeTablePC98), kEoB1MonsterDirChangeTablePC98 }; + +static const uint16 kEoB1EncodeMonsterDefsPC98[168] = { + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0028, 0x000c, 0x0038, + 0x0013, 0x0028, 0x000c, 0x0038, 0x001f, 0x0000, 0x0007, 0x0060, + 0x0000, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, + 0x000e, 0x0060, 0x0005, 0x0038, 0x0007, 0x0000, 0x0007, 0x0028, + 0x000e, 0x0000, 0x0007, 0x0028, 0x0013, 0x0060, 0x0005, 0x0038, + 0x0018, 0x0060, 0x0005, 0x0038, 0x001d, 0x0060, 0x0005, 0x0038, + 0x000e, 0x0098, 0x0003, 0x0020, 0x0011, 0x00a0, 0x0004, 0x0018, + 0x0015, 0x00a0, 0x0004, 0x0018, 0x0019, 0x0098, 0x0003, 0x0020, + 0x001c, 0x0098, 0x0003, 0x0020, 0x001f, 0x0098, 0x0003, 0x0020, + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0000, 0x0007, 0x0060, + 0x000e, 0x0000, 0x0007, 0x0060, 0x0015, 0x0000, 0x0007, 0x0060, + 0x001c, 0x0000, 0x0007, 0x0060, 0x0000, 0x0060, 0x0007, 0x0060, + 0x0007, 0x0060, 0x0005, 0x0038, 0x000c, 0x0060, 0x0005, 0x0038, + 0x0011, 0x0060, 0x0005, 0x0038, 0x0016, 0x0060, 0x0005, 0x0038, + 0x001b, 0x0060, 0x0005, 0x0038, 0x0020, 0x0060, 0x0005, 0x0038, + 0x0007, 0x0098, 0x0003, 0x0020, 0x000a, 0x0098, 0x0003, 0x0020, + 0x000d, 0x0098, 0x0003, 0x0020, 0x0010, 0x0098, 0x0003, 0x0020, + 0x0013, 0x0098, 0x0003, 0x0020, 0x0016, 0x0098, 0x0003, 0x0020, + 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 kEoB1EncodeMonsterDefsPC98Provider = { ARRAYSIZE(kEoB1EncodeMonsterDefsPC98), kEoB1EncodeMonsterDefsPC98 }; + +static const EoBCharacter kEoB1NpcPresetsPC98[9] = { + { 0x00, 0x01, "\xb1\xc6\xac", + 18, 18, 59, 59, 5, 5, 11, 11, 14, 14, 16, 16, 9, 9, + 45, 45, 10, 0, 1, 0, 2, -1, 100, { 4, 0, 0 }, + { 0x00001F40, 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, "\xcb\xde\xb5\xd7\xd1", + 17, 17, 0, 0, 9, 9, 15, 15, 13, 13, 18, 18, 17, 17, + 55, 55, 10, 0, 0, 0, 0, -2, 100, { 7, 0, 0 }, + { 0x000130B0, 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, "\xb7\xd7\xbd", + 11, 11, 0, 0, 17, 17, 13, 13, 18, 18, 8, 8, 12, 12, + 20, 20, 10, 0, 4, 3, 4, -3, 100, { 7, 0, 0 }, + { 0x00011170, 0x00000000, 0x00000000 }, 0x00B3126B, + { 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, "\xb2\xda\xd8\xb1", + 10, 10, 0, 0, 12, 12, 9, 9, 15, 15, 17, 17, 17, 17, + 52, 52, 10, 0, 4, 4, 0, -4, 100, { 6, 0, 0 }, + { 0x00004E20, 0x00000000, 0x00000000 }, 0xFFFFFFFF, + { 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, "\xc3\xa8\xd7", + 16, 16, 0, 0, 14, 14, 16, 16, 18, 18, 17, 17, 7, 7, + 45, 45, 10, 0, 1, 1, 2, -5, 100, { 6, 0, 0 }, + { 0x0000CF08, 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, "\xc4\xaf\xc4\xde\xb1\xaf\xcc\xdf\xcb\xd9", + 17, 17, 0, 0, 11, 11, 14, 14, 19, 19, 18, 18, 16, 16, + 32, 32, 10, 0, 10, 5, 5, -6, 100, { 5, 0, 0 }, + { 0x00002D3F, 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, "\xc0\xba\xde\xb0\xd9", + 17, 17, 0, 0, 11, 11, 15, 15, 15, 15, 19, 19, 9, 9, + 3, 45, 3, 0, 6, 0, 1, -7, 25, { 5, 0, 0 }, + { 0x00003F6A, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0029, 0x0000, 0x002B, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "\xc4\xde\xb0\xd7\xd1", + 18, 18, 29, 29, 13, 13, 11, 11, 16, 16, 17, 17, 14, 14, + 28, 28, 10, 0, 6, 0, 0, -8, 100, { 3, 0, 0 }, + { 0x000013A0, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0024, 0x0000, 0x0030, 0x0037, 0x0037, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0029, 0x0000, 0x002B, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "\xb7\xb1\xb6\xde\xb0", + 18, 18, 92, 92, 15, 15, 15, 15, 12, 12, 19, 19, 17, 17, + 3, 45, 3, 0, 6, 0, 1, -9, 25, { 5, 0, 0 }, + { 0x00001F40, 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 } } +}; + +static const EoBCharacterProvider kEoB1NpcPresetsPC98Provider = { ARRAYSIZE(kEoB1NpcPresetsPC98), kEoB1NpcPresetsPC98 }; + +static const byte kEoB1Palettes16cPC98[480] = { + 0x00, 0x00, 0x00, 0x00, 0x0b, 0x05, 0x09, 0x06, 0x0a, 0x08, 0x03, 0x04, 0x06, 0x04, 0x02, 0x0c, + 0x0e, 0x06, 0x0c, 0x0f, 0x09, 0x07, 0x0a, 0x05, 0x04, 0x08, 0x04, 0x0a, 0x0a, 0x0d, 0x04, 0x04, + 0x0a, 0x02, 0x02, 0x07, 0x02, 0x02, 0x02, 0x04, 0x04, 0x06, 0x08, 0x08, 0x09, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x06, 0x05, 0x08, 0x08, 0x08, 0x0a, 0x03, 0x0c, 0x04, 0x00, 0x06, 0x00, 0x0d, + 0x0e, 0x08, 0x08, 0x0f, 0x08, 0x06, 0x06, 0x03, 0x00, 0x0a, 0x02, 0x04, 0x04, 0x07, 0x0a, 0x09, + 0x0c, 0x04, 0x04, 0x06, 0x03, 0x03, 0x03, 0x04, 0x04, 0x06, 0x09, 0x0c, 0x06, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x0b, 0x05, 0x07, 0x03, 0x0b, 0x09, 0x08, 0x0d, 0x0a, 0x0d, 0x02, 0x0c, + 0x0e, 0x05, 0x0b, 0x0d, 0x08, 0x07, 0x0a, 0x05, 0x05, 0x08, 0x04, 0x0d, 0x0d, 0x0f, 0x04, 0x04, + 0x0a, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, 0x04, 0x04, 0x06, 0x0b, 0x0a, 0x0c, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x02, 0x0c, 0x03, 0x09, 0x09, 0x0c, 0x04, 0x07, 0x03, 0x04, 0x04, 0x04, 0x0c, + 0x0e, 0x04, 0x0a, 0x0d, 0x08, 0x07, 0x09, 0x04, 0x01, 0x09, 0x02, 0x0c, 0x0c, 0x0f, 0x05, 0x04, + 0x0a, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, 0x06, 0x07, 0x06, 0x0a, 0x09, 0x08, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x0b, 0x05, 0x09, 0x06, 0x0a, 0x08, 0x03, 0x04, 0x06, 0x04, 0x02, 0x0c, + 0x0e, 0x06, 0x0c, 0x0f, 0x09, 0x07, 0x0a, 0x05, 0x04, 0x08, 0x04, 0x0a, 0x0a, 0x0d, 0x04, 0x04, + 0x0a, 0x02, 0x02, 0x07, 0x02, 0x02, 0x02, 0x04, 0x04, 0x06, 0x07, 0x07, 0x08, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x04, 0x09, 0x06, 0x0f, 0x05, 0x05, 0x0a, 0x00, 0x02, 0x07, 0x00, 0x04, 0x07, + 0x07, 0x09, 0x0c, 0x0e, 0x0a, 0x07, 0x0a, 0x05, 0x04, 0x07, 0x04, 0x08, 0x08, 0x09, 0x0a, 0x0a, + 0x0b, 0x05, 0x05, 0x08, 0x02, 0x05, 0x02, 0x0b, 0x0c, 0x0b, 0x0c, 0x0d, 0x0c, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x0f, 0x0e, 0x0b, 0x0f, 0x0e, 0x08, 0x0d, 0x0d, 0x03, 0x0b, 0x09, 0x00, 0x0d, + 0x0b, 0x00, 0x0f, 0x01, 0x04, 0x0c, 0x00, 0x04, 0x0a, 0x04, 0x03, 0x07, 0x09, 0x03, 0x07, 0x05, + 0x02, 0x05, 0x04, 0x07, 0x08, 0x05, 0x09, 0x0b, 0x09, 0x0a, 0x0c, 0x0a, 0x0b, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x0d, 0x0e, 0x0b, 0x0c, 0x0d, 0x0b, 0x09, 0x0c, 0x06, 0x04, 0x05, 0x04, 0x0b, + 0x0d, 0x08, 0x0b, 0x0c, 0x00, 0x06, 0x08, 0x04, 0x04, 0x05, 0x03, 0x04, 0x04, 0x0c, 0x08, 0x06, + 0x0f, 0x04, 0x03, 0x05, 0x00, 0x00, 0x00, 0x04, 0x02, 0x08, 0x06, 0x01, 0x0d, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x0d, 0x0e, 0x0b, 0x0c, 0x0d, 0x0a, 0x09, 0x0c, 0x06, 0x04, 0x05, 0x04, 0x0b, + 0x0d, 0x08, 0x0b, 0x0c, 0x0a, 0x05, 0x08, 0x03, 0x04, 0x05, 0x02, 0x05, 0x00, 0x00, 0x09, 0x00, + 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x06, 0x06, 0x08, 0x0f, 0x01, 0x03, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x0d, 0x0e, 0x0b, 0x0e, 0x0f, 0x0b, 0x09, 0x0c, 0x06, 0x07, 0x08, 0x07, 0x0b, + 0x0d, 0x08, 0x0d, 0x0d, 0x0d, 0x05, 0x08, 0x03, 0x04, 0x06, 0x04, 0x06, 0x05, 0x04, 0x09, 0x07, + 0x07, 0x0c, 0x0c, 0x0c, 0x02, 0x03, 0x02, 0x09, 0x09, 0x0a, 0x0c, 0x08, 0x08, 0x0f, 0x0f, 0x0f +}; + +static const ByteProvider kEoB1Palettes16cPC98Provider = { ARRAYSIZE(kEoB1Palettes16cPC98), kEoB1Palettes16cPC98 }; + +static const byte kEoB1PalCycleDataPC98[725] = { + 0x00, 0xff, 0x20, 0xff, 0xfd, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0x01, 0x1e, 0x00, 0x1e, 0x00, + 0x1e, 0x20, 0xff, 0xee, 0x00, 0x32, 0x00, 0x1e, 0xff, 0x1e, 0x00, 0x1e, 0xff, 0x1e, 0x00, 0x1e, + 0x20, 0xff, 0xdf, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0x01, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x20, + 0xff, 0xd0, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0x01, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x20, 0xff, + 0xc1, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0x01, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0xb2, + 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0x01, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0xa3, 0x00, + 0x32, 0x00, 0x1e, 0xff, 0x1e, 0x00, 0x1e, 0xff, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0x94, 0x00, 0x32, + 0xff, 0x1e, 0xff, 0x1e, 0xff, 0x1e, 0xff, 0x1e, 0xff, 0x1e, 0x20, 0xff, 0x85, 0x00, 0x32, 0x00, + 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0x76, 0x00, 0x32, 0x00, 0x1e, + 0xff, 0x1e, 0x00, 0x1e, 0xff, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0x67, 0x00, 0x32, 0xff, 0x1e, 0xff, + 0x1e, 0xff, 0x1e, 0xff, 0x1e, 0xff, 0x1e, 0x20, 0xff, 0x58, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, + 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0x49, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0xff, + 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0x3a, 0x00, 0x32, 0x00, 0x1e, 0xff, 0x1e, 0x00, 0x1e, + 0xff, 0x1e, 0x00, 0x1e, 0x20, 0xff, 0x2b, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x00, + 0x1e, 0x00, 0x1e, 0x20, 0xff, 0x1c, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, + 0x00, 0x1e, 0x20, 0xff, 0x0d, 0x00, 0x32, 0x00, 0x1e, 0x00, 0x1e, 0xff, 0x1e, 0x00, 0x1e, 0x00, + 0x1e, 0x20, 0xfe, 0xfe, 0x00, 0x32, 0x00, 0x1e, 0x01, 0x1e, 0x00, 0x1e, 0x01, 0x1e, 0x00, 0x1e, + 0x20, 0xfe, 0xef, 0xfd, 0x01, 0x03, 0x01, 0x20, 0xff, 0xfb, 0xff, 0x01, 0x01, 0x01, 0x20, 0xff, + 0xfb, 0xff, 0x01, 0x01, 0x01, 0x20, 0xff, 0xfb, 0xfd, 0x01, 0x03, 0x01, 0x20, 0xff, 0xfb, 0xfe, + 0x01, 0x02, 0x01, 0x20, 0xff, 0xfb, 0xff, 0x01, 0x01, 0x01, 0x20, 0xff, 0xfb, 0x00, 0x01, 0x00, + 0x01, 0x20, 0xff, 0xfb, 0xff, 0x01, 0x01, 0x01, 0x20, 0xff, 0xfb, 0xff, 0x01, 0x01, 0x01, 0x20, + 0xff, 0xfb, 0x00, 0x01, 0x00, 0x01, 0x20, 0xff, 0xfb, 0xff, 0x01, 0x01, 0x01, 0x20, 0xff, 0xfb, + 0xff, 0x01, 0x01, 0x01, 0x20, 0xff, 0xfb, 0x00, 0x01, 0x00, 0x01, 0x20, 0xff, 0xfb, 0xff, 0x01, + 0x01, 0x01, 0x20, 0xff, 0xfb, 0xfe, 0x01, 0x02, 0x01, 0x20, 0xff, 0xfb, 0x00, 0x05, 0x00, 0x05, + 0xff, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x00, 0x05, + 0x20, 0xff, 0xeb, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x20, 0xff, 0xeb, 0xff, 0x05, 0xff, 0x05, 0xff, 0x05, + 0xff, 0x05, 0xff, 0x05, 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 0x20, 0xff, + 0xeb, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, + 0x05, 0x01, 0x05, 0x00, 0x05, 0x20, 0xff, 0xeb, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, + 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x20, 0xff, 0xeb, 0xff, + 0x05, 0xff, 0x05, 0xff, 0x05, 0xff, 0x05, 0x00, 0x05, 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 0x01, + 0x05, 0x00, 0x05, 0x20, 0xff, 0xeb, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, + 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x20, 0xff, 0xeb, 0x00, 0x05, 0xff, + 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, + 0x05, 0x20, 0xff, 0xeb, 0xff, 0x05, 0xff, 0x05, 0xff, 0x05, 0xff, 0x05, 0x00, 0x05, 0x01, 0x05, + 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 0x00, 0x05, 0x20, 0xff, 0xeb, 0x00, 0x05, 0x00, 0x05, 0xff, + 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x00, 0x05, 0x20, + 0xff, 0xeb, 0xff, 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0xff, 0x05, 0x01, 0x05, 0x00, 0x05, + 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, 0x20, 0xff, 0xeb, 0xff, 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, + 0x05, 0xff, 0x05, 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, 0x20, 0xff, 0xeb, + 0x00, 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x01, 0x05, + 0x00, 0x05, 0x00, 0x05, 0x20, 0xff, 0xeb, 0xff, 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0xff, + 0x05, 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, 0x20, 0xff, 0xeb, 0x00, 0x05, + 0xff, 0x05, 0x00, 0x05, 0xff, 0x05, 0x00, 0x05, 0x00, 0x05, 0x01, 0x05, 0x00, 0x05, 0x01, 0x05, + 0x00, 0x05, 0x20, 0xff, 0xeb +}; + +static const ByteProvider kEoB1PalCycleDataPC98Provider = { ARRAYSIZE(kEoB1PalCycleDataPC98), kEoB1PalCycleDataPC98 }; + +static const uint16 kEoB1PalCycleStyle1PC98[96] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0023, 0x0001, + 0x0014, 0x0001, 0x0005, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0050, 0x0001, + 0x0041, 0x0001, 0x0032, 0x0001, 0x007d, 0x0001, 0x006e, 0x0001, + 0x005f, 0x0001, 0x00aa, 0x0001, 0x009b, 0x0001, 0x008c, 0x0001, + 0x00d7, 0x0001, 0x00c8, 0x0001, 0x00b9, 0x0001, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0104, 0x0001, 0x00f5, 0x0001, 0x00e6, 0x0001, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB1PalCycleStyle1PC98Provider = { ARRAYSIZE(kEoB1PalCycleStyle1PC98), kEoB1PalCycleStyle1PC98 }; + +static const uint16 kEoB1PalCycleStyle2PC98[96] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121, 0x0001, + 0x011a, 0x0001, 0x0113, 0x0001, 0x0136, 0x0001, 0x012f, 0x0001, + 0x0128, 0x0001, 0x014b, 0x0001, 0x0144, 0x0001, 0x013d, 0x0001, + 0x0160, 0x0001, 0x0159, 0x0001, 0x0152, 0x0001, 0x0175, 0x0001, + 0x016e, 0x0001, 0x0167, 0x0001, 0x01aa, 0x0001, 0x0193, 0x0001, + 0x017c, 0x0001, 0x01ef, 0x0001, 0x01d8, 0x0001, 0x01c1, 0x0001, + 0x0234, 0x0001, 0x021d, 0x0001, 0x0206, 0x0001, 0x0279, 0x0001, + 0x0262, 0x0001, 0x024b, 0x0001, 0x02be, 0x0001, 0x02a7, 0x0001, + 0x0290, 0x0001, 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, 0x0000, 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB1PalCycleStyle2PC98Provider = { ARRAYSIZE(kEoB1PalCycleStyle2PC98), kEoB1PalCycleStyle2PC98 }; + +static const byte kEoB1FinaleEyesAnimPC98[50] = { + 0x00, 0x14, 0x01, 0x03, 0x00, 0x1e, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03, 0x04, 0x14, 0x01, 0x03, + 0x04, 0x0f, 0x03, 0x03, 0x02, 0x03, 0x01, 0x0a, 0x01, 0x02, 0x00, 0x14, 0x02, 0x03, 0x03, 0x03, + 0x04, 0x28, 0x03, 0x03, 0x02, 0x03, 0x01, 0x0a, 0x01, 0x03, 0x00, 0x14, 0x00, 0x14, 0x01, 0x03, + 0x64, 0x64 +}; + +static const ByteProvider kEoB1FinaleEyesAnimPC98Provider = { ARRAYSIZE(kEoB1FinaleEyesAnimPC98), kEoB1FinaleEyesAnimPC98 }; + +static const uint16 kEoB1FinaleHandsAnimPC98[30] = { + 0xffd8, 0x0028, 0xffe2, 0x002d, 0xffec, 0x0032, 0xfff6, 0x0030, + 0x0000, 0x002d, 0x0004, 0x002d, 0x0006, 0x002d, 0x0006, 0x002d, + 0x0006, 0x002d, 0x0006, 0x002d, 0x0006, 0x002d, 0x0006, 0x002d, + 0x0006, 0x002d, 0x0006, 0x002d, 0x0309, 0x0309 +}; + +static const Uint16Provider kEoB1FinaleHandsAnimPC98Provider = { ARRAYSIZE(kEoB1FinaleHandsAnimPC98), kEoB1FinaleHandsAnimPC98 }; + +static const uint16 kEoB1FinaleHandsAnim2PC98[30] = { + 0x00a0, 0x0028, 0x00a0, 0x0028, 0x00a0, 0x0028, 0x0096, 0x002d, + 0x008c, 0x002d, 0x0082, 0x0032, 0x0078, 0x0036, 0x006e, 0x0039, + 0x0064, 0x0037, 0x005a, 0x0034, 0x004e, 0x0031, 0x0040, 0x002e, + 0x0038, 0x002b, 0x0032, 0x0028, 0x0309, 0x0309 +}; + +static const Uint16Provider kEoB1FinaleHandsAnim2PC98Provider = { ARRAYSIZE(kEoB1FinaleHandsAnim2PC98), kEoB1FinaleHandsAnim2PC98 }; + +static const byte kEoB1FinaleHandsAnim3PC98[50] = { + 0x00, 0x02, 0x05, 0x07, 0x09, 0x07, 0x05, 0x02, + 0x00, 0x02, 0x05, 0x07, 0x09, 0x07, 0x05, 0x02, + 0x00, 0x02, 0x05, 0x07, 0x09, 0x07, 0x05, 0x02, + 0x00, 0x02, 0x05, 0x07, 0x09, 0x07, 0x05, 0x02 +}; + +static const ByteProvider kEoB1FinaleHandsAnim3PC98Provider = { ARRAYSIZE(kEoB1FinaleHandsAnim3PC98), kEoB1FinaleHandsAnim3PC98 }; + +static const byte kEoB1CreditsStringsPC98[459] = { + 0x0d, 0x08, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x66, 0x66, 0x0d, 0x0c, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0d, 0x08, 0x20, + 0x20, 0x20, 0x20, 0x59, 0x61, 0x73, 0x75, 0x74, 0x61, 0x6b, 0x61, 0x20, 0x55, 0x6b, 0x61, 0x69, + 0x0d, 0x0c, 0x43, 0x68, 0x69, 0x65, 0x66, 0x20, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, + 0x65, 0x72, 0x0d, 0x08, 0x20, 0x20, 0x20, 0x20, 0x4d, 0x61, 0x6b, 0x6f, 0x74, 0x6f, 0x20, 0x49, + 0x63, 0x68, 0x69, 0x6e, 0x6f, 0x73, 0x65, 0x6b, 0x69, 0x0d, 0x0c, 0x53, 0x75, 0x62, 0x20, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x0d, 0x08, 0x20, 0x20, 0x20, 0x20, 0x48, + 0x69, 0x72, 0x6f, 0x79, 0x75, 0x6b, 0x69, 0x20, 0x46, 0x75, 0x6a, 0x69, 0x77, 0x61, 0x72, 0x61, + 0x0d, 0x20, 0x20, 0x20, 0x20, 0x48, 0x69, 0x64, 0x65, 0x66, 0x75, 0x6d, 0x69, 0x20, 0x4f, 0x68, + 0x61, 0x72, 0x61, 0x0d, 0x0c, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x44, 0x65, 0x73, + 0x69, 0x67, 0x6e, 0x0d, 0x08, 0x20, 0x20, 0x20, 0x20, 0x41, 0x74, 0x73, 0x75, 0x68, 0x69, 0x72, + 0x6f, 0x20, 0x47, 0x75, 0x6e, 0x6a, 0x69, 0x0d, 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x65, 0x6b, + 0x6f, 0x20, 0x59, 0x6f, 0x73, 0x68, 0x69, 0x64, 0x61, 0x0d, 0x0c, 0x4d, 0x75, 0x73, 0x69, 0x63, + 0x0d, 0x08, 0x20, 0x20, 0x20, 0x20, 0x59, 0x75, 0x7a, 0x6f, 0x20, 0x4b, 0x6f, 0x73, 0x68, 0x69, + 0x72, 0x6f, 0x0d, 0x20, 0x20, 0x20, 0x20, 0x59, 0x75, 0x6a, 0x69, 0x20, 0x59, 0x61, 0x6d, 0x61, + 0x64, 0x61, 0x0d, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x26, 0x20, 0x53, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x0d, 0x08, 0x20, + 0x20, 0x20, 0x20, 0x48, 0x69, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x20, 0x59, 0x61, 0x73, 0x75, 0x64, + 0x61, 0x0d, 0x20, 0x20, 0x20, 0x20, 0x4d, 0x69, 0x79, 0x75, 0x6b, 0x69, 0x20, 0x4b, 0x69, 0x79, + 0x6f, 0x6d, 0x61, 0x74, 0x73, 0x75, 0x0d, 0x20, 0x20, 0x20, 0x20, 0x4d, 0x65, 0x67, 0x75, 0x6d, + 0x69, 0x20, 0x54, 0x73, 0x75, 0x67, 0x65, 0x0d, 0x0c, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x0d, 0x08, 0x20, 0x20, 0x20, 0x20, 0x59, 0x6f, 0x73, 0x68, 0x69, 0x61, 0x6b, 0x69, + 0x20, 0x4d, 0x61, 0x74, 0x73, 0x75, 0x6d, 0x6f, 0x74, 0x6f, 0x0d, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x62, 0x75, 0x61, 0x6b, 0x69, 0x20, 0x53, 0x75, 0x7a, 0x75, 0x6b, 0x69, 0x0d, 0x0c, 0x44, + 0x65, 0x62, 0x75, 0x67, 0x0d, 0x08, 0x20, 0x20, 0x20, 0x20, 0x4d, 0x61, 0x73, 0x61, 0x61, 0x6b, + 0x69, 0x20, 0x46, 0x75, 0x72, 0x75, 0x79, 0x61, 0x0d, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x69, 0x79, + 0x6f, 0x74, 0x6f, 0x20, 0x59, 0x6f, 0x73, 0x68, 0x69, 0x6d, 0x75, 0x72, 0x61, 0x0d, 0x0c, 0x40, + 0x0d, 0x08, 0x20, 0x54, 0x68, 0x75, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x73, 0x20, 0x61, + 0x20, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5b, 0x0d, 0x0c, 0x00 +}; + +static const ByteProvider kEoB1CreditsStringsPC98Provider = { ARRAYSIZE(kEoB1CreditsStringsPC98), kEoB1CreditsStringsPC98 }; + +static const byte kEoB1CreditsCharWdthPC98[128] = { + 0x0b, 0x0a, 0x09, 0x0b, 0x0a, 0x09, 0x0a, 0x0b, + 0x06, 0x08, 0x0c, 0x09, 0x0d, 0x0c, 0x09, 0x0a, + 0x09, 0x0b, 0x09, 0x0b, 0x0c, 0x0e, 0x0c, 0x0d, + 0x0b, 0x0a, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0x08, 0x07, 0x0a, 0x07, 0x07, 0x08, 0x09, + 0x06, 0x05, 0x08, 0x04, 0x0f, 0x0a, 0x08, 0x0a, + 0x09, 0x07, 0x07, 0x06, 0x0a, 0x09, 0x0e, 0x0c, + 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB1CreditsCharWdthPC98Provider = { ARRAYSIZE(kEoB1CreditsCharWdthPC98), kEoB1CreditsCharWdthPC98 }; + +static const char *const kEoB1SoundFilesIntroPC98[2] = { + "DUM", + "EOBOP" +}; + +static const StringListProvider kEoB1SoundFilesIntroPC98Provider = { ARRAYSIZE(kEoB1SoundFilesIntroPC98), kEoB1SoundFilesIntroPC98 }; + +static const char *const kEoB1SoundFilesIngamePC98[14] = { + "DUM", + "E1.OBJ", + "E2.OBJ", + "E2.OBJ", + "E7.OBJ", + "E7.OBJ", + "E5.OBJ", + "E5.OBJ", + "E4.OBJ", + "E4.OBJ", + "E8.OBJ", + "E8.OBJ", + "E3.OBJ", + "E6.OBJ" +}; + +static const StringListProvider kEoB1SoundFilesIngamePC98Provider = { ARRAYSIZE(kEoB1SoundFilesIngamePC98), kEoB1SoundFilesIngamePC98 }; + +static const char *const kEoB1SoundFilesFinalePC98[2] = { + "DUM", + "EOBEND" +}; + +static const StringListProvider kEoB1SoundFilesFinalePC98Provider = { ARRAYSIZE(kEoB1SoundFilesFinalePC98), kEoB1SoundFilesFinalePC98 }; diff --git a/devtools/create_kyradat/resources/eob1_pc98_japanese.h b/devtools/create_kyradat/resources/eob1_pc98_japanese.h new file mode 100644 index 0000000000..10da4423eb --- /dev/null +++ b/devtools/create_kyradat/resources/eob1_pc98_japanese.h @@ -0,0 +1,1070 @@ +static const char *const kEoB1ChargenStrings1PC98Japanese[9] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x8f""o""\x97\x88\x8f\xe3\x82\xaa\x82\xe8\x82\xdc\x82\xb5\x82\xbd\x81""B\r""\x81""u""\x82""o""\x82""k""\x82""`""\x82""x""\x81""v""\x82\xf0\x91""I""\x82\xd4\x82\xa9\x81""u""\x82""o""\x81""v""\x82\xf0\x89\x9f\x82\xb7\x82\xc6""\r""\x83""Q""\x81""[""\x83\x80\x82\xaa\x8e""n""\x82\xdc\x82\xe8\x82\xdc\x82\xb7\x81""B", + " ", + "AC\rHP\rLVL", + "%s\r%d\r%d\r%d\r%d\r%d", + "%d\r%d", + "%d", + "%d/%d", + "%d/%d/%d", + "\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xf0\x8d\xec\x82\xe8\x82\xbd\x82\xa2\x83""{""\x83""b""\x83""N""\x83""X""\x82\xa9\x81""A\r""\x8f\xda\x8d\xd7\x82\xf0\x8c\xa9\x82\xbd\x82\xa2\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xcc\x83""{""\x83""b""\x83""N""\x83""X""\x82\xf0""\r""\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B" +}; + +static const StringListProvider kEoB1ChargenStrings1PC98JapaneseProvider = { ARRAYSIZE(kEoB1ChargenStrings1PC98Japanese), kEoB1ChargenStrings1PC98Japanese }; + +static const char *const kEoB1ChargenStrings2PC98Japanese[12] = { + "%s", + "%d", + "%s", + "%d", + "%d", + "%d", + "%s", + "%d", + "\x8e\xed\x91\xb0\x82\xf0\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""F", + "\x83""N""\x83\x89\x83""X""\x82\xf0\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""F", + "\x83""A""\x83\x89\x83""C""\x83\x93\x83\x81\x83\x93\x83""g""\x82\xf0\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""F", + "\x96\xbc\x91""O""\x81""F" +}; + +static const StringListProvider kEoB1ChargenStrings2PC98JapaneseProvider = { ARRAYSIZE(kEoB1ChargenStrings2PC98Japanese), kEoB1ChargenStrings2PC98Japanese }; + +static const char *const kEoB1ChargenStatStringsPC98Japanese[12] = { + "\x91\xcc\x97\xcd\x93""x", + "\x92""m""\x90\xab\x93""x", + "\x8c\xab\x96\xbe\x93""x", + "\x95""q""\x8f\xb7\x93""x", + "\x91\xcf\x8b""v""\x93""x", + "\x96\xa3\x97\xcd\x93""x", + "\x91\xcc\x97\xcd\x93""x", + "\x92""m""\x90\xab\x93""x", + "\x8c\xab\x96\xbe\x93""x", + "\x95""q""\x8f\xb7\x93""x", + "\x91\xcf\x8b""v""\x93""x", + "\x96\xa3\x97\xcd\x93""x" +}; + +static const StringListProvider kEoB1ChargenStatStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ChargenStatStringsPC98Japanese), kEoB1ChargenStatStringsPC98Japanese }; + +static const char *const kEoB1ChargenRaceSexStringsPC98Japanese[12] = { + "\x90""l""\x8a\xd4\x81""@""\x92""j", + "\x90""l""\x8a\xd4\x81""@""\x8f\x97", + "\x83""G""\x83\x8b\x83""t""\x81""@""\x92""j", + "\x83""G""\x83\x8b\x83""t""\x81""@""\x8f\x97", + "\x83""n""\x81""[""\x83""t""\x81""E""\x83""G""\x83\x8b\x83""t""\x81""@""\x92""j", + "\x83""n""\x81""[""\x83""t""\x81""E""\x83""G""\x83\x8b\x83""t""\x81""@""\x8f\x97", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x81""@""\x92""j", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x81""@""\x8f\x97", + "\x83""m""\x81""[""\x83\x80\x81""@""\x92""j", + "\x83""m""\x81""[""\x83\x80\x81""@""\x8f\x97", + "\x83""n""\x81""[""\x83""t""\x83\x8a\x83\x93\x83""O""\x81""@""\x92""j", + "\x83""n""\x81""[""\x83""t""\x83\x8a\x83\x93\x83""O""\x81""@""\x8f\x97" +}; + +static const StringListProvider kEoB1ChargenRaceSexStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ChargenRaceSexStringsPC98Japanese), kEoB1ChargenRaceSexStringsPC98Japanese }; + +static const char *const kEoB1ChargenClassStringsPC98Japanese[21] = { + "\x90\xed\x8e""m", + "\x83\x8c\x83\x93\x83""W""\x83\x83\x81""[", + "\x90\xb9\x8b""R""\x8e""m", + "\x96\x82\x96""@""\x8e""g""\x82\xa2", + "\x91""m""\x97\xb5", + "\x93\x90\x91\xaf", + "\x90\xed\x8e""m""\x81""^""\x91""m""\x97\xb5", + "\x90\xed\x8e""m""\x81""^""\x93\x90\x91\xaf", + "\x90\xed\x8e""m""\x81""^""\x96\x82\x96""@""\x8e""g""\x82\xa2", + "\x90\xed\x8e""m""\x81""^""\x96\x82\x96""@""\x8e""g""\x82\xa2\x81""^""\x93\x90\x91\xaf", + "\x93\x90\x91\xaf\x81""^""\x96\x82\x96""@""\x8e""g""\x82\xa2", + "\x91""m""\x97\xb5\x81""^""\x93\x90\x91\xaf", + "\x90\xed\x8e""m""\x81""^""\x91""m""\x97\xb5\x81""^""\x96\x82\x96""@""\x8e""g""\x82\xa2", + "\x83\x8c\x83\x93\x83""W""\x83\x83\x81""[""\x81""^""\x91""m""\x97\xb5", + "\x91""m""\x97\xb5\x81""^""\x96\x82\x96""@""\x8e""g""\x82\xa2", + "\x90\xed\x8e""m", + "\x96\x82\x96""@""\x8e""g""\x82\xa2", + "\x91""m""\x97\xb5", + "\x93\x90\x91\xaf", + "\x90\xb9\x8b""R""\x8e""m", + "\x83\x8c\x83\x93\x83""W""\x83\x83\x81""[" +}; + +static const StringListProvider kEoB1ChargenClassStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ChargenClassStringsPC98Japanese), kEoB1ChargenClassStringsPC98Japanese }; + +static const char *const kEoB1ChargenAlignmentStringsPC98Japanese[9] = { + "\x83\x8d\x81""[""\x83""t""\x83\x8b\x81""E""\x83""O""\x83""b""\x83""h", + "\x83""j""\x83\x85\x81""[""\x83""g""\x83\x89\x83\x8b\x81""E""\x83""O""\x83""b""\x83""h", + "\x83""P""\x83""C""\x83""I""\x83""e""\x83""B""\x83""b""\x83""N""\x81""E""\x83""O""\x83""b""\x83""h", + "\x83\x8d\x81""[""\x83""t""\x83\x8b\x81""E""\x83""j""\x83\x85\x81""[""\x83""g""\x83\x89\x83\x8b", + "\x83""g""\x83""D""\x83\x8b\x81""[""\x81""E""\x83""j""\x83\x85\x81""[""\x83""g""\x83\x89\x83\x8b", + "\x83""P""\x83""C""\x83""I""\x83""e""\x83""B""\x83""b""\x83""N""\x81""E""\x83""j""\x83\x85\x81""[""\x83""g""\x83\x89\x83\x8b", + "\x83\x8d\x81""[""\x83""t""\x83\x8b\x81""E""\x83""C""\x81""[""\x83""r""\x83\x8b", + "\x83""j""\x83\x85\x81""[""\x83""g""\x83\x89\x83\x8b\x81""E""\x83""C""\x81""[""\x83""r""\x83\x8b", + "\x83""P""\x83""C""\x83""I""\x83""e""\x83""B""\x83""b""\x83""N""\x81""E""\x83""C""\x81""[""\x83""r""\x83\x8b" +}; + +static const StringListProvider kEoB1ChargenAlignmentStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ChargenAlignmentStringsPC98Japanese), kEoB1ChargenAlignmentStringsPC98Japanese }; + +static const char *const kEoB1ChargenEnterGameStringsPC98Japanese[1] = { + "\x81""@""\x81""@""\x83""Q""\x81""[""\x83\x80\x82\xf0\x8e""n""\x82\xdf\x82\xdc\x82\xb7\x81""B\r""\x81""@""\x81""@""\x82\xb5\x82\xce\x82\xe7\x82\xad\x82\xa8\x91\xd2\x82\xbf\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B" +}; + +static const StringListProvider kEoB1ChargenEnterGameStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ChargenEnterGameStringsPC98Japanese), kEoB1ChargenEnterGameStringsPC98Japanese }; + +static const char *const kEoB1MainMenuStringsPC98Japanese[3] = { + "\x90""i""\x8d""s""\x92\x86\x82\xcc\x83""Q""\x81""[""\x83\x80\x8f\xee\x95\xf1\x82\xf0\x93\xc7\x82\xdd\x82\xb1\x82\xde""\r", + "\x90""V""\x82\xb5\x82\xa2\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xc5\x8e""n""\x82\xdf\x82\xe9""\r", + "\x83""Q""\x81""[""\x83\x80\x83\x86\x81""[""\x83""e""\x83""B""\x83\x8a\x83""e""\x83""B\r" +}; + +static const StringListProvider kEoB1MainMenuStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1MainMenuStringsPC98Japanese), kEoB1MainMenuStringsPC98Japanese }; + + +static const char *const kEoB1BonusStringsPC98Japanese[3] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x82\xcc\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xcc\x96\xbc\x91""O""\x82\xcd\x8e\x9f\x82\xcc\x92\xca\x82\xe8\x82\xc5\x82\xb7\x81""B", + "\r", + "\x83""p""\x83""X""\x83\x8f\x81""[""\x83""h""\x81""F%04x" +}; + +static const StringListProvider kEoB1BonusStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1BonusStringsPC98Japanese), kEoB1BonusStringsPC98Japanese }; + +static const char *const kEoB1TurnUndeadStringPC98Japanese[1] = { + "\x06\x06""%s""\x82\xcd\x83""A""\x83\x93\x83""f""\x83""b""\x83""g""\x82\xf0\x91\xde\x8e""U""\x82\xb3\x82\xb9\x82\xe6\x82\xa4\x82\xc6\x8e\x8e\x82\xdd\x82\xbd\x81""I""\x06\x0f""\r" +}; + +static const StringListProvider kEoB1TurnUndeadStringPC98JapaneseProvider = { ARRAYSIZE(kEoB1TurnUndeadStringPC98Japanese), kEoB1TurnUndeadStringPC98Japanese }; + +static const char *const kEoB1Npc0StringsPC98Japanese[2] = { + "\r ""\x82\xb2\x8d""K""\x89""^""\x82\xf0\x8b""F""\x82\xe8\x82\xdc\x82\xb7\x81""B", + "\x92""N""\x82\xf0\x95\x9c\x8a\x88\x82\xb3\x82\xb9\x82\xdc\x82\xb7\x82\xa9\x81""H" +}; + +static const StringListProvider kEoB1Npc0StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc0StringsPC98Japanese), kEoB1Npc0StringsPC98Japanese }; + +static const char *const kEoB1Npc11StringsPC98Japanese[3] = { + "\x8f\x9d\x82\xcc\x8e\xe8\x93\x96\x82\xf0\x82\xb7\x82\xe9", + "\x98""b""\x82\xb5\x82\xa9\x82\xaf\x82\xe9", + "\x97\xa7\x82\xbf\x8b\x8e\x82\xe9" +}; + +static const StringListProvider kEoB1Npc11StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc11StringsPC98Japanese), kEoB1Npc11StringsPC98Japanese }; + +static const char *const kEoB1Npc12StringsPC98Japanese[2] = { + "\x8f\x9d\x82\xcc\x8e\xe8\x93\x96\x82\xf0\x82\xb7\x82\xe9", + "\x97\xa7\x82\xbf\x8b\x8e\x82\xe9" +}; + +static const StringListProvider kEoB1Npc12StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc12StringsPC98Japanese), kEoB1Npc12StringsPC98Japanese }; + +static const char *const kEoB1Npc21StringsPC98Japanese[2] = { + "\x90""\\""\x82\xb5\x8f""o""\x82\xf0\x95\xb7\x82\xad", + "\x97\xa7\x82\xbf\x8b\x8e\x82\xe9" +}; + +static const StringListProvider kEoB1Npc21StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc21StringsPC98Japanese), kEoB1Npc21StringsPC98Japanese }; + +static const char *const kEoB1Npc22StringsPC98Japanese[2] = { + "\x8f\x95\x82\xaf\x82\xe9", + "\x97\xa7\x82\xbf\x8b\x8e\x82\xe9" +}; + +static const StringListProvider kEoB1Npc22StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc22StringsPC98Japanese), kEoB1Npc22StringsPC98Japanese }; + +static const char *const kEoB1Npc31StringsPC98Japanese[2] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcc\x8f\x9d\x82\xf0\x96\xfc\x82\xb7", + "\x97\xa7\x82\xbf\x8b\x8e\x82\xe9" +}; + +static const StringListProvider kEoB1Npc31StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc31StringsPC98Japanese), kEoB1Npc31StringsPC98Japanese }; + +static const char *const kEoB1Npc32StringsPC98Japanese[3] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcc\x8f\x9d\x82\xf0\x96\xfc\x82\xb7", + "\x8e\x80\x8e\xd2\x82\xf0\x95\x9c\x8a\x88\x82\xb3\x82\xb9\x82\xe9", + "\x97\xa7\x82\xbf\x8b\x8e\x82\xe9" +}; + +static const StringListProvider kEoB1Npc32StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc32StringsPC98Japanese), kEoB1Npc32StringsPC98Japanese }; + +static const char *const kEoB1Npc4StringsPC98Japanese[2] = { + "\x8d""U""\x8c\x82\x82\xb7\x82\xe9", + "\x98""d""\x98""G""\x82\xf0\x93""n""\x82\xb7" +}; + +static const StringListProvider kEoB1Npc4StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc4StringsPC98Japanese), kEoB1Npc4StringsPC98Japanese }; + +static const char *const kEoB1Npc5StringsPC98Japanese[3] = { + "\x8e""E""\x82\xb7", + "\x98""b""\x82\xf0\x8d\xc5\x8c\xe3\x82\xdc\x82\xc5\x95\xb7\x82\xad", + "\x8d""s""\x82\xa9\x82\xb9\x82\xe9" +}; + +static const StringListProvider kEoB1Npc5StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc5StringsPC98Japanese), kEoB1Npc5StringsPC98Japanese }; + +static const char *const kEoB1Npc6StringsPC98Japanese[2] = { + "\x8d""~""\x95\x9a\x82\xb7\x82\xe9", + "\x8d""U""\x8c\x82\x82\xb7\x82\xe9" +}; + +static const StringListProvider kEoB1Npc6StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc6StringsPC98Japanese), kEoB1Npc6StringsPC98Japanese }; + +static const char *const kEoB1Npc7StringsPC98Japanese[3] = { + "\x8e\xa9\x97""R""\x82\xc9\x82\xb7\x82\xe9", + "\x8e""E""\x82\xb7", + "\x97\xa7\x82\xbf\x8b\x8e\x82\xe9" +}; + +static const StringListProvider kEoB1Npc7StringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1Npc7StringsPC98Japanese), kEoB1Npc7StringsPC98Japanese }; + +static const char *const kEoB1PryDoorStringsPC98Japanese[7] = { + "\x97\xcd\x82\xf0\x82\xd3\x82\xe8\x82\xb5\x82\xda\x82\xc1\x82\xbd\x82\xaa\x92""N""\x82\xc9\x82\xe0\x94\xe0\x82\xcd\x8a""J""\x82\xaf\x82\xe7\x82\xea\x82\xc8\x82\xa9\x82\xc1\x82\xbd\x81""B\r", + "\x83""p""\x81""[""\x83""e""\x83""B""\x82\xcd\x97\xcd\x82\xc3\x82\xad\x82\xc5\x94\xe0\x82\xf0\x8a""J""\x82\xaf\x82\xbd\x81""B\r", + "%s""\x82\xcd\x97\xcd\x82\xc3\x82\xad\x82\xc5\x94\xe0\x82\xf0\x8a""J""\x82\xaf\x82\xbd\x81""I\r", + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x97\xcd\x82\xc3\x82\xad\x82\xc5\x94\xe0\x82\xf0\x8a""J""\x82\xaf\x82\xe6\x82\xa4\x82\xc6\x82\xb5\x82\xc4\x8e\xb8\x94""s""\x82\xb5\x82\xbd\x81""B\r", + "\x82\xbb\x82\xcc\x83""A""\x83""C""\x83""e""\x83\x80\x82\xcd\x82\xbb\x82\xb1\x82\xc9\x92""u""\x82\xad\x82\xb1\x82\xc6\x82\xcd\x82\xc5\x82\xab\x82\xc8\x82\xa2\x81""B\r", + "\x82\xbb\x82\xcc\x83""A""\x83""C""\x83""e""\x83\x80\x82\xc5\x82\xcd\x91\xe5\x82\xab\x82\xb7\x82\xac\x82\xe9\x81""B\r", + "\x92""N""\x82\xc9\x82\xe0\x82\xb1\x82\xcc\x94\xe0\x82\xf0\x8a""J""\x82\xaf\x82\xe9\x82\xb1\x82\xc6\x82\xcd\x82\xc5\x82\xab\x82\xc8\x82\xa2\x81""B\r" +}; + +static const StringListProvider kEoB1PryDoorStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1PryDoorStringsPC98Japanese), kEoB1PryDoorStringsPC98Japanese }; + +static const char *const kEoB1WarningStringsPC98Japanese[3] = { + "\x82\xbb\x82\xcc\x95\xfb\x8c\xfc\x82\xd6\x82\xcd\x90""i""\x82\xdf\x82\xc8\x82\xa2\x81""B\r", + "%s""\x82\xcd\x90""H""\x97\xbf\x82\xf0\x90""H""\x82\xd7\x82\xe9\x82\xb1\x82\xc6\x82\xaa\x8f""o""\x97\x88\x82\xc8\x82\xa2\x81""I\r", + "\x8c\xfb\x82\xc9\x82\xc5\x82\xab\x82\xe9\x82\xcc\x82\xcd\x90""H""\x82\xd7\x82\xe0\x82\xcc\x82\xbe\x82\xaf\x82\xbe\x81""B\r" +}; + +static const StringListProvider kEoB1WarningStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1WarningStringsPC98Japanese), kEoB1WarningStringsPC98Japanese }; + +static const char *const kEoB1ItemNamesPC98Japanese[96] = { + "\x83""}""\x83""E""\x83""X", + "", + "\x83\x8c\x83""U""\x81""[""\x81""E""\x83""A""\x81""[""\x83""}""\x81""[", + "\x83\x8d\x81""[""\x83""u", + "\x83""X""\x83""^""\x83""b""\x83""t", + "\x83""_""\x83""K""\x81""[", + "\x83""V""\x83\x87\x81""[""\x83""g""\x83""\\""\x81""[""\x83""h", + "\x8c\xae\x8a""J""\x82\xaf\x93\xb9\x8b\xef", + "\x8e\xf4\x95\xb6\x8f\x91", + "\x91""m""\x97\xb5\x82\xcc\x83""z""\x81""[""\x83\x8a\x81""[""\x81""E""\x83""V""\x83\x93\x83""{""\x83\x8b", + "\x83\x8c\x83""U""\x81""[""\x81""E""\x83""u""\x81""[""\x83""c", + "\x8c""g""\x8d""s""\x90""H""\x97\xbf", + "\x82\xc8\x82\xc9\x82\xe0\x82\xc8\x82\xa2", + "\x95\xf3\x90\xce\x82\xcc\x8c\xae", + "\x83""|""\x81""[""\x83""V""\x83\x87\x83\x93", + "\x95\xf3\x90\xce", + "\x82\xc7\x82\xad\x82\xeb\x82\xcc\x8c\xae", + "\x83\x8f\x83\x93\x83""h", + "\x83""X""\x83""N""\x83\x8d\x81""[""\x83\x8b", + "\x83\x8a\x83\x93\x83""O", + "\x96""h""\x8c\xec\x82\xcc\x83\x8a\x83\x93\x83""O""\x81""{""\x82""Q", + "\x83""A""\x83""_""\x83""}""\x83\x93\x83""^""\x83""C""\x83""g""\x81""E""\x83""_""\x81""[""\x83""c", + "\x90\xb9\x8b""R""\x8e""m""\x82\xcc\x83""z""\x81""[""\x83\x8a\x81""[""\x81""E""\x83""V""\x83\x93\x83""{""\x83\x8b", + "\x83""V""\x83\x8b\x83\x94\x83""B""\x83""A""\x82\xcc\x83\x8f\x83\x93\x83""h", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x82\xcc\x8d\x9c", + "\x8c\xae", + "\x88\xcf\x94""C""\x8f\xf3\x82\xa9\x82\xc2\x96\xc6\x8b\x96\x8f\xf3", + "\x83""A""\x83""b""\x83""N""\x83""X", + "\x83""_""\x81""[""\x83""c", + "\x83""n""\x83\x8b\x83""o""\x81""[""\x83""h", + "\x83""`""\x83""F""\x83""C""\x83\x93\x83\x81\x83""C""\x83\x8b", + "\x83""w""\x83\x8b\x83\x81\x83""b""\x83""g", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x81""E""\x83""w""\x83\x8b\x83\x81\x83""b""\x83""g", + "\x8b\xe2\x82\xcc\x8c\xae", + "\x83""A""\x83""_""\x83""}""\x83\x93\x83""^""\x83""C""\x83""g""\x81""E""\x83\x8d\x83\x93\x83""O""\x81""E""\x83""\\""\x81""[""\x83""h", + "\x83\x81\x83""C""\x83""X", + "\x83\x8d\x83\x93\x83""O""\x81""E""\x83""\\""\x81""[""\x83""h", + "\x81""h""\x83""O""\x83""C""\x83\x93\x83""X""\x81""[""\x81""h", + "\x97\xcd\x82\xcc\x83""I""\x81""[""\x83""u", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x82\xcc\x83""q""\x81""[""\x83\x8a\x83\x93\x83""O""\x83""|""\x81""[""\x83""V""\x83\x87\x83\x93", + "\x90\xce", + "\x90""H""\x97\xbf", + "\x94\xfc\x97\xed\x82\xc8\x83\x8d\x81""[""\x83""u", + "\x89\xce\x90\xac\x8a\xe2", + "\x83""X""\x83""s""\x83""A", + "\x94\xe9\x90\xce\x82\xcc\x83\x81\x83""_""\x83\x8a\x83""I""\x83\x93", + "\x83""n""\x81""[""\x83""t""\x83\x8a\x83\x93\x83""O""\x82\xcc\x8d\x9c", + "\x83""A""\x83\x8d\x81""[", + "\x83""V""\x81""[""\x83\x8b\x83""h", + "\x8b\xe0\x82\xcc\x8c\xae", + "\x83""{""\x83""E", + "\x94\xe9\x90\xce\x82\xcc\x83""_""\x83""K""\x81""[", + "\x83""X""\x83\x8a\x83\x93\x83""O", + "\x83""o""\x83""b""\x83""N""\x83""X""\x83""^""\x83""b""\x83""o""\x81""[", + "\x83\x8d\x83\x93\x83""O""\x83""\\""\x81""[""\x83""h", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x82\xcc\x8c\xae", + "\x83\x81\x83""_""\x83\x8a\x83""I""\x83\x93", + "\x91\x95\x8f\xfc\x82\xcc\x83\x81\x83""_""\x83\x8a\x83""I""\x83\x93", + "\x83""h""\x83\x8d\x83""E""\x81""E""\x83""N""\x83\x8c\x81""[""\x83""o""\x81""[", + "\x94\xe9\x90\xce\x82\xcc\x83""Z""\x83""v""\x83""^""\x81""[", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x81""E""\x83""w""\x83\x8b\x83\x81\x83""b""\x83""g", + "\x83""h""\x83\x8f\x81""[""\x83""t""\x81""E""\x83""V""\x81""[""\x83\x8b\x83""h", + "\x94\xe9\x90\xce\x82\xcc\x83""l""\x83""b""\x83""N""\x83\x8c\x83""X", + "\x83""v""\x83\x8c\x81""[""\x83""g""\x81""E""\x83\x81\x83""C""\x83\x8b", + "\x83""X""\x83""P""\x81""[""\x83\x8b\x81""E""\x83\x81\x83""C""\x83\x8b", + "\x83""u""\x81""[""\x83""c", + "\x83""P""\x83\x93\x83""N""\x82\xcc\x97\x91", + "\x94\xe9\x90\xce\x82\xcc\x83\x8a\x83\x93\x83""O", + "\x83""u""\x83\x8c\x81""[""\x83""T""\x81""[", + "\x83""`""\x81""[""\x83""t""\x83""e""\x83\x93\x81""E""\x83""n""\x83\x8b\x83""o""\x81""[""\x83""h", + "\x83""l""\x83""b""\x83""N""\x83\x8c\x83""X", + "\x91\x95\x8f\xfc\x82\xcc\x83""l""\x83""b""\x83""N""\x83\x8c\x83""X", + "\x8d""K""\x89""^""\x82\xcc\x90\xce\x82\xcc\x83\x81\x83""_""\x83\x8a\x83""I""\x83\x93", + "\x81""h""\x83""X""\x83\x89\x83""C""\x83""T""\x81""[""\x81""h", + "\x83""o""\x83\x93\x83""f""\x83""B""\x83""b""\x83""h""\x81""E""\x83""A""\x81""[""\x83""}""\x81""[", + "\x83""h""\x83\x8d\x83""E""\x82\xcc\x8c\xae", + "\x83\x8b\x83""r""\x81""[""\x82\xcc\x8c\xae", + "\x81""h""\x83""i""\x83""C""\x83""g""\x81""E""\x83""X""\x83""g""\x81""[""\x83""J""\x81""[""\x81""h", + "\x83""h""\x83\x8d\x83""E""\x81""E""\x83""{""\x83""E", + "\x83""h""\x83\x8d\x83""E""\x81""E""\x83""u""\x81""[""\x83""c", + "\x89\xd8\x97\xed\x82\xcc\x83""v""\x83\x8c\x81""[""\x83""g""\x81""E""\x83\x81\x83""C""\x83\x8b", + "\x83""t""\x83\x8c\x83""C""\x83\x8b", + "\x89\xa4\x8e\xd2\x82\xcc\x97\xcd\x82\xcc\x83""Z""\x83""v""\x83""^""\x81""[", + "\x83""h""\x83\x8d\x83""E""\x81""E""\x83""V""\x81""[""\x83\x8b\x83""h", + "\x94\xe9\x90\xce\x82\xcc\x83""z""\x81""[""\x83\x8a\x81""[""\x81""E""\x83""V""\x83\x93\x83""{""\x83\x8b", + "\x94\xe9\x90\xce\x82\xcc\x83""I""\x81""[""\x83""u", + "\x81""h""\x83""X""\x83\x89\x83""b""\x83""V""\x83\x83\x81""[""\x81""h", + "\x8e\xe7\x82\xe8\x82\xcc\x83\x8d\x81""[""\x83""u", + "\x81""h""\x83""t""\x83\x8a\x83""b""\x83""J""\x81""h", + "\x90""l""\x8a\xd4\x82\xcc\x8d\x9c", + "\x81""h""\x83""V""\x83\x94\x83""@""\x83\x8a\x83""A""\x83""X""\x81""h", + "\x89\xce\x8b\x85\x82\xcc\x83\x8f\x83\x93\x83""h", + "\x89\xf0\x93\xc5\x82\xcc\x83""|""\x81""[""\x83""V""\x83\x87\x83\x93", + "\x83""z""\x81""[""\x83\x8a\x81""[""\x81""E""\x83""V""\x83\x93\x83""{""\x83\x8b", + "\x8e\xf4\x95\xb6\x8f\x91", + "" +}; + +static const StringListProvider kEoB1ItemNamesPC98JapaneseProvider = { ARRAYSIZE(kEoB1ItemNamesPC98Japanese), kEoB1ItemNamesPC98Japanese }; + +static const uint16 kEoB1Ascii2SjisTable1PC98Japanese[30] = { + 0x4b83, 0x4d83, 0x4f83, 0x5183, 0x5383, 0x5583, 0x5783, 0x5983, + 0x5b83, 0x5d83, 0x5f83, 0x6183, 0x6483, 0x6683, 0x6883, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6f83, 0x7283, 0x7583, 0x7883, + 0x7b83, 0x7083, 0x7383, 0x7683, 0x7983, 0x7c83 +}; + +static const Uint16Provider kEoB1Ascii2SjisTable1PC98JapaneseProvider = { ARRAYSIZE(kEoB1Ascii2SjisTable1PC98Japanese), kEoB1Ascii2SjisTable1PC98Japanese }; + +static const uint16 kEoB1Ascii2SjisTable2PC98Japanese[160] = { + 0x4081, 0x3981, 0x3a81, 0x9481, 0x9081, 0x9381, 0x9581, 0x8c81, + 0x6981, 0x6a81, 0x9681, 0x7b81, 0x4381, 0x7c81, 0x4481, 0x5e81, + 0x4f82, 0x5082, 0x5182, 0x5282, 0x5382, 0x5482, 0x5582, 0x5682, + 0x5782, 0x5882, 0x4681, 0x4781, 0x7181, 0x8181, 0x7281, 0x4881, + 0x9781, 0x6082, 0x6182, 0x6282, 0x6382, 0x6482, 0x6582, 0x6682, + 0x6782, 0x6882, 0x6982, 0x6a82, 0x6b82, 0x6c82, 0x6d82, 0x6e82, + 0x6f82, 0x7082, 0x7182, 0x7282, 0x7382, 0x7482, 0x7582, 0x7682, + 0x7782, 0x7882, 0x7982, 0x6d81, 0x8f81, 0x6e81, 0x4f81, 0x5181, + 0x4081, 0x8182, 0x8282, 0x8382, 0x8482, 0x8582, 0x8682, 0x8782, + 0x8882, 0x8982, 0x8a82, 0x8b82, 0x8c82, 0x8d82, 0x8e82, 0x8f82, + 0x9082, 0x9182, 0x9282, 0x9382, 0x9482, 0x9582, 0x9682, 0x9782, + 0x9882, 0x9982, 0x9a82, 0x6f81, 0x6281, 0x7081, 0x6081, 0x4081, + 0x4081, 0x4281, 0x7581, 0x7681, 0x4181, 0x4581, 0x9283, 0x4083, + 0x4283, 0x4483, 0x4683, 0x4883, 0x8383, 0x8583, 0x8783, 0x6283, + 0x5b81, 0x4183, 0x4383, 0x4583, 0x4783, 0x4983, 0x4a83, 0x4c83, + 0x4e83, 0x5083, 0x5283, 0x5483, 0x5683, 0x5883, 0x5a83, 0x5c83, + 0x5e83, 0x6083, 0x6383, 0x6583, 0x6783, 0x6983, 0x6a83, 0x6b83, + 0x6c83, 0x6d83, 0x6e83, 0x7183, 0x7483, 0x7783, 0x7a83, 0x7d83, + 0x7e83, 0x8083, 0x8183, 0x8283, 0x8483, 0x8683, 0x8883, 0x8983, + 0x8a83, 0x8b83, 0x8c83, 0x8d83, 0x8f83, 0x9383, 0x4a81, 0x4b81 +}; + +static const Uint16Provider kEoB1Ascii2SjisTable2PC98JapaneseProvider = { ARRAYSIZE(kEoB1Ascii2SjisTable2PC98Japanese), kEoB1Ascii2SjisTable2PC98Japanese }; + +static const uint8 kEoB1FontLookupTablePC98Japanese[275] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x01, 0x01, 0x01, 0x01, + 0x0c, 0x0d, 0x0e, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x0f, 0x10, 0x01, 0x11, + 0x01, 0x01, 0x01, 0x12, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x13, 0x14, 0x01, 0x01, 0x15, 0x16, + 0x17, 0x18, 0x01, 0x01, 0x01, 0x01, 0x19, 0x1a, + 0x01, 0x01, 0x01, 0x01, 0x1b, 0x1c, 0x01, 0x01, + 0x01, 0x01, 0x1d, 0x01, 0x1e, 0x1f, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x20, 0x21, 0x01, 0x01, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, + 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x48, 0x49, 0x4a, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, + 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, + 0x61, 0x62, 0x63, 0x64, 0x65, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x66, 0x67, 0x68, 0x69, 0x6a, + 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, + 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, + 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, + 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, + 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, + 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, + 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, + 0xa3, 0xa4, 0x01, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, + 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, + 0xb2, 0xb3, 0xb4, 0x01, 0x01, 0xb5, 0xb6, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01 +}; + +static const ByteProvider kEoB1FontLookupTablePC98JapaneseProvider = { ARRAYSIZE(kEoB1FontLookupTablePC98Japanese), kEoB1FontLookupTablePC98Japanese }; + +static const char *const kEoB1ItemSuffixStringsRingsPC98Japanese[4] = { + "\x83""A""\x83""h""\x81""[""\x83\x93\x83\x81\x83\x93\x83""g", + "\x83""E""\x83""B""\x83""U""\x81""[""\x83""h""\x83\x8a\x83""B", + "\x83""T""\x83""X""\x83""e""\x83""i""\x83\x93\x83""X", + "\x83""t""\x83""F""\x83""U""\x81""[""\x81""E""\x83""t""\x83""H""\x81""[""\x83\x8b" +}; + +static const StringListProvider kEoB1ItemSuffixStringsRingsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsRingsPC98Japanese), kEoB1ItemSuffixStringsRingsPC98Japanese }; + +static const char *const kEoB1ItemSuffixStringsPotionsPC98Japanese[8] = { + "\x83""W""\x83\x83\x83""C""\x83""A""\x83\x93\x83""g""\x81""E""\x83""X""\x83""g""\x83\x8c\x83\x93\x83""O""\x83""X", + "\x83""q""\x81""[""\x83\x8a\x83\x93\x83""O", + "\x83""G""\x83""N""\x83""X""\x83""g""\x83\x89\x81""E""\x83""q""\x81""[""\x83\x8a\x83\x93\x83""O", + "\x83""|""\x83""C""\x83""Y""\x83\x93", + "\x83""o""\x83""C""\x83""^""\x83""C""\x83""e""\x83""B", + "\x83""X""\x83""s""\x81""[""\x83""h", + "\x83""C""\x83\x93\x83""r""\x83""W""\x83""r""\x83\x8a\x83""e""\x83""B", + "\x83""L""\x83\x85\x83""A""\x81""E""\x83""|""\x83""C""\x83""Y""\x83\x93" +}; + +static const StringListProvider kEoB1ItemSuffixStringsPotionsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsPotionsPC98Japanese), kEoB1ItemSuffixStringsPotionsPC98Japanese }; + +static const char *const kEoB1ItemSuffixStringsWandsPC98Japanese[7] = { + "\x83""X""\x83""e""\x83""B""\x83""b""\x83""N", + "\x83\x89\x83""C""\x83""g""\x83""j""\x83\x93\x83""O""\x81""E""\x83""{""\x83\x8b\x83""g", + "\x83""t""\x83\x8d\x83""X""\x83""g", + "\x83""L""\x83\x85\x83""A""\x83\x8a\x83\x93\x83""O", + "\x83""t""\x83""@""\x83""C""\x83""A""\x83""{""\x81""[""\x83\x8b", + "\x83""V""\x83\x8b\x83\x94\x83""B""\x83""A", + "\x83""}""\x83""W""\x83""b""\x83""N""\x81""E""\x83""~""\x83""T""\x83""C""\x83\x8b" +}; + +static const StringListProvider kEoB1ItemSuffixStringsWandsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsWandsPC98Japanese), kEoB1ItemSuffixStringsWandsPC98Japanese }; + +static const char *const kEoB1RipItemStringsPC98Japanese[3] = { + "%s""\x82\xcd", + "%s""\x82\xcd", + "\x82\xf0\x82\xc8\x82\xad\x82\xb5\x82\xbd\x81""B\r" +}; + +static const StringListProvider kEoB1RipItemStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1RipItemStringsPC98Japanese), kEoB1RipItemStringsPC98Japanese }; + +static const char *const kEoB1CursedStringPC98Japanese[1] = { + "\x8e\xf4\x82\xed\x82\xea\x82\xc4\x82\xa2\x82\xe9""%s%d" +}; + +static const StringListProvider kEoB1CursedStringPC98JapaneseProvider = { ARRAYSIZE(kEoB1CursedStringPC98Japanese), kEoB1CursedStringPC98Japanese }; + +static const char *const kEoB1MagicObjectStringsPC98Japanese[5] = { + "\x96\x82\x96""@""\x8e""g""\x82\xa2\x97""p""\x8a\xaa\x95\xa8", + "\x91""m""\x97\xb5\x97""p""\x8a\xaa\x95\xa8", + "\x83\x8a\x83\x93\x83""O", + "\x83""|""\x81""[""\x83""V""\x83\x87\x83\x93", + "\x83\x8f\x83\x93\x83""h" +}; + +static const StringListProvider kEoB1MagicObjectStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicObjectStringsPC98Japanese), kEoB1MagicObjectStringsPC98Japanese }; + +static const char *const kEoB1MagicObjectString5PC98Japanese[1] = { + "\x83""X""\x83""e""\x83""B""\x83""b""\x83""N" +}; + +static const StringListProvider kEoB1MagicObjectString5PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicObjectString5PC98Japanese), kEoB1MagicObjectString5PC98Japanese }; + +static const char *const kEoB1PatternSuffixPC98Japanese[1] = { + "%s""\x82\xcc""%s" +}; + +static const StringListProvider kEoB1PatternSuffixPC98JapaneseProvider = { ARRAYSIZE(kEoB1PatternSuffixPC98Japanese), kEoB1PatternSuffixPC98Japanese }; + +static const char *const kEoB1PatternGrFix1PC98Japanese[1] = { + "%s""\x82\xcc""%s" +}; + +static const StringListProvider kEoB1PatternGrFix1PC98JapaneseProvider = { ARRAYSIZE(kEoB1PatternGrFix1PC98Japanese), kEoB1PatternGrFix1PC98Japanese }; + +static const char *const kEoB1PatternGrFix2PC98Japanese[1] = { + "%s""\x82\xcc""%s" +}; + +static const StringListProvider kEoB1PatternGrFix2PC98JapaneseProvider = { ARRAYSIZE(kEoB1PatternGrFix2PC98Japanese), kEoB1PatternGrFix2PC98Japanese }; + +static const char *const kEoB1ValidateArmorStringPC98Japanese[1] = { + "%s""\x82\xcd\x82\xbb\x82\xcc\x83""^""\x83""C""\x83""v""\x82\xcc\x96""h""\x8b\xef\x82\xf0\x90""g""\x82\xc9\x82\xc2\x82\xaf\x82\xe7\x82\xea\x82\xc8\x82\xa2\x81""B\r" +}; + +static const StringListProvider kEoB1ValidateArmorStringPC98JapaneseProvider = { ARRAYSIZE(kEoB1ValidateArmorStringPC98Japanese), kEoB1ValidateArmorStringPC98Japanese }; + +static const char *const kEoB1ValidateNoDropStringPC98Japanese[1] = { + "\x82\xbb\x82\xcc\x83""A""\x83""C""\x83""e""\x83\x80\x82\xf0\x82\xbb\x82\xb1\x82\xc9\x92""u""\x82\xad\x82\xb1\x82\xc6\x82\xcd\x82\xc5\x82\xab\x82\xc8\x82\xa2\x81""B\r" +}; + +static const StringListProvider kEoB1ValidateNoDropStringPC98JapaneseProvider = { ARRAYSIZE(kEoB1ValidateNoDropStringPC98Japanese), kEoB1ValidateNoDropStringPC98Japanese }; + +static const char *const kEoB1PotionStringsPC98Japanese[2] = { + "\x93\xc5\x82\xf0\x8e\xf3\x82\xaf\x82\xbd", + "%s""\x82\xcd""%s""\x81""I\r" +}; + +static const StringListProvider kEoB1PotionStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1PotionStringsPC98Japanese), kEoB1PotionStringsPC98Japanese }; + +static const char *const kEoB1WandStringsPC98Japanese[2] = { + "\x82\xbb\x82\xcc\x83\x8f\x83\x93\x83""h""\x82\xc9\x96\x82\x96""@""\x82\xcc\x8c\xf8\x89\xca\x82\xcd\x82\xc8\x82\xa2\x82\xe6\x82\xa4\x82\xbe\x81""B\r", + "\x8c\xf8\x89\xca\x82\xcd\x82\xc8\x82\xa9\x82\xc1\x82\xbd\x81""B\r" +}; + +static const StringListProvider kEoB1WandStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1WandStringsPC98Japanese), kEoB1WandStringsPC98Japanese }; + +static const char *const kEoB1ItemMisuseStringsPC98Japanese[3] = { + "%s""\x82\xcd\x82\xb1\x82\xcc\x83""A""\x83""C""\x83""e""\x83\x80\x82\xf0\x8e""g""\x82\xa4\x82\xb1\x82\xc6\x82\xaa\x82\xc5\x82\xab\x82\xc8\x82\xa2\x81""B\r", + "\x82\xb1\x82\xcc\x83""A""\x83""C""\x83""e""\x83\x80\x82\xcd\x91\x95\x94\xf5\x82\xb7\x82\xea\x82\xce\x8e\xa9\x93\xae\x93""I""\x82\xc9\x8c\xf8\x89\xca\x82\xf0\x8e\x9d\x82\xc2\x81""B\r", + "\x83""A""\x83""C""\x83""e""\x83\x80\x82\xcc\x8e""g""\x82\xa2\x95\xfb\x82\xaa\x8a\xd4\x88\xe1\x82\xc1\x82\xc4\x82\xa2\x82\xe9\x81""B\r" +}; + +static const StringListProvider kEoB1ItemMisuseStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1ItemMisuseStringsPC98Japanese), kEoB1ItemMisuseStringsPC98Japanese }; + +static const char *const kEoB1TakenStringsPC98Japanese[1] = { + "\x82\xf0\x8e\xe8\x82\xc9\x8e\xe6\x82\xc1\x82\xbd\x81""B\r" +}; + +static const StringListProvider kEoB1TakenStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1TakenStringsPC98Japanese), kEoB1TakenStringsPC98Japanese }; + +static const char *const kEoB1PotionEffectStringsPC98Japanese[8] = { + "\x97\xcd\x82\xaa\x82\xa0\x82\xaa\x82\xc1\x82\xbd", + "\x8c\xb3\x8b""C""\x82\xc9\x82\xc8\x82\xc1\x82\xbd", + "\x82\xb8\x82\xc1\x82\xc6\x8c\xb3\x8b""C""\x82\xc9\x82\xc8\x82\xc1\x82\xbd", + "\x82\xb5\x82\xce\x82\xe7\x82\xad\x8b""C""\x95\xaa\x82\xaa\x88\xab\x82\xad\x82\xc8\x82\xc1\x82\xbd", + "\x82\xe0\x82\xcd\x82\xe2\x8b\xf3\x95\xa0\x82\xc5\x82\xcd\x82\xc8\x82\xad\x82\xc8\x82\xc1\x82\xbd", + "\x82\xb7\x82\xce\x82\xe2\x82\xad\x8b""@""\x95""q""\x82\xc9\x82\xc8\x82\xc1\x82\xbd", + "\x93\xa7\x96\xbe\x82\xc9\x82\xc8\x82\xc1\x82\xbd", + "\x8b""C""\x95\xaa\x82\xaa\x82\xe6\x82\xad\x82\xc8\x82\xc1\x82\xbd" +}; + +static const StringListProvider kEoB1PotionEffectStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1PotionEffectStringsPC98Japanese), kEoB1PotionEffectStringsPC98Japanese }; + +static const char *const kEoB1YesNoStringsPC98Japanese[2] = { + "\x82\xcd\x82\xa2", + "\x82\xa2\x82\xa2\x82\xa6" +}; + +static const StringListProvider kEoB1YesNoStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1YesNoStringsPC98Japanese), kEoB1YesNoStringsPC98Japanese }; + +static const char *const kEoB1MoreStringsPC98Japanese[1] = { + "\x8e\x9f\x82\xd6" +}; + +static const StringListProvider kEoB1MoreStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1MoreStringsPC98Japanese), kEoB1MoreStringsPC98Japanese }; + +static const char *const kEoB1NpcMaxStringsPC98Japanese[1] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xc9\x93\xfc\x82\xea\x82\xe7\x82\xea\x82\xe9\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xcd\x82""U""\x90""l""\x82\xdc\x82\xc5\x82\xc5\x82\xb7\x81""B\r""\x82\xcd\x82\xb8\x82\xb5\x82\xbd\x82\xa2\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xf0\x82""P""\x90""l""\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B" +}; + +static const StringListProvider kEoB1NpcMaxStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1NpcMaxStringsPC98Japanese), kEoB1NpcMaxStringsPC98Japanese }; + +static const char *const kEoB1NpcJoinStringsPC98Japanese[1] = { + "%s""\x82\xaa\x83""p""\x81""[""\x83""e""\x83""B""\x82\xc9\x89\xc1\x82\xed\x82\xc1\x82\xbd\x81""B\r" +}; + +static const StringListProvider kEoB1NpcJoinStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1NpcJoinStringsPC98Japanese), kEoB1NpcJoinStringsPC98Japanese }; + +static const char *const kEoB1CancelStringsPC98Japanese[1] = { + "\x82\xe2\x82\xdf\x82\xe9" +}; + +static const StringListProvider kEoB1CancelStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1CancelStringsPC98Japanese), kEoB1CancelStringsPC98Japanese }; + +static const char *const kEoB1MenuStringsMainPC98Japanese[8] = { + "\x91""I""\x91\xf0\x83""R""\x83""}""\x83\x93\x83""h""\x81""F", + "\x8b""x""\x91\xa7\x82\xb7\x82\xe9", + "\x8e\xf4\x95\xb6\x82\xf0\x8b""L""\x89\xaf\x82\xb7\x82\xe9", + "\x8e\xf4\x95\xb6\x82\xf0\x8e\xf6\x82\xa9\x82\xe9", + "\x8e\xf4\x95\xb6\x82\xf0\x8f\x91\x82\xab\x82\xb1\x82\xde", + "\x83""Q""\x81""[""\x83\x80\x8a\xc2\x8b\xab", + "\x95\xe2\x8f\x95\x8b""@""\x94""\\", + "\x94\xb2\x82\xaf\x82\xe9" +}; + +static const StringListProvider kEoB1MenuStringsMainPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsMainPC98Japanese), kEoB1MenuStringsMainPC98Japanese }; + +static const char *const kEoB1MenuStringsSaveLoadPC98Japanese[8] = { + "\x83""Q""\x81""[""\x83\x80\x8f\xee\x95\xf1\x82\xf0\x93\xc7\x82\xdd\x82\xb1\x82\xde", + "\x83""Q""\x81""[""\x83\x80\x8f\xee\x95\xf1\x82\xf0\x95\xdb\x91\xb6\x82\xb7\x82\xe9", + "\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xf0\x82\xcd\x82\xb8\x82\xb7", + "\x83""Q""\x81""[""\x83\x80\x82\xf0\x92\x86\x92""f""\x82\xb7\x82\xe9", + "\x95\xe2\x8f\x95\x8b""@""\x94""\\""\x81""F", + "\r ""\x8f\x91\x82\xab\x82\xb1\x82\xdd\x82\xdc\x82\xb5\x82\xbd\x81""B", + "\r ""\x83""Q""\x81""[""\x83\x80\x8f\xee\x95\xf1\x82\xf0\x8f\x91\x82\xab\x82\xb1\x82\xde""\r ""\x8e\xb8\x94""s""\x82\xb5\x82\xdc\x82\xb5\x82\xbd\x81""I", + "\r ""\x83""Q""\x81""[""\x83\x80\x8f\xee\x95\xf1\x82\xf0\x93\xc7\x82\xdd\x82\xb1\x82\xde""\r ""\x8e\xb8\x94""s""\x82\xb5\x82\xdc\x82\xb5\x82\xbd\x81""I" +}; + +static const StringListProvider kEoB1MenuStringsSaveLoadPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsSaveLoadPC98Japanese), kEoB1MenuStringsSaveLoadPC98Japanese }; + +static const char *const kEoB1MenuStringsOnOffPC98Japanese[2] = { + "\x82""n""\x82""m", + "\x82""n""\x82""e""\x82""e" +}; + +static const StringListProvider kEoB1MenuStringsOnOffPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsOnOffPC98Japanese), kEoB1MenuStringsOnOffPC98Japanese }; + +static const char *const kEoB1MenuStringsSpellsPC98Japanese[17] = { + "\r\r""\x8e\xf4\x95\xb6\x82\xf0\x8b""L""\x89\xaf\x82\xb3\x82\xb9\x82\xbd\x82\xa2\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xf0""\r""\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B", + "\r""\x82\xbb\x82\xcc\x90\xb9\x8b""R""\x8e""m""\x82\xcc\x83\x8c\x83""x""\x83\x8b\x82\xc5\x82\xcd\x82\xdc\x82\xbe\x8e\xf4\x95\xb6\x82\xcd\x8e""g""\x82\xa6\x82\xdc\x82\xb9\x82\xf1\x81""B", + "\r\r""\x82\xbb\x82\xcc\x96\x82\x96""@""\x8e""g""\x82\xa2\x82\xcd\x8e\xf4\x95\xb6\x8f\x91\x82\xf0\x8e\x9d\x82\xc1\x82\xc4\x82\xa2\x82\xdc\x82\xb9\x82\xf1\x81""I", + "\r\r\r""\x8e\xf4\x95\xb6\x82\xf0\x82\xb3\x82\xb8\x82\xa9\x82\xe7\x82\xb9\x82\xbd\x82\xa2\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xf0""\r""\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B", + "\r""\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xc9\x8e\xf4\x95\xb6\x82\xf0\x82\xb3\x82\xb8\x82\xa9\x82\xe9\x82\xb1\x82\xc6\x82\xcc\x82\xc5\x82\xab\x82\xe9\x91""m""\x97\xb5\x82\xcd\x82\xa2\x82\xdc\x82\xb9\x82\xf1\x81""B", + "\r""\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xc9\x8e\xf4\x95\xb6\x82\xf0\x8b""L""\x89\xaf\x82\xb7\x82\xe9\x82\xb1\x82\xc6\x82\xcc\x82\xc5\x82\xab\x82\xe9\x96\x82\x96""@""\x8e""g""\x82\xa2\x82\xcd\x82\xa2\x82\xdc\x82\xb9\x82\xf1\x81""B", + "\x8b""C""\x90\xe2\x82\xe0\x82\xb5\x82\xad\x82\xcd\x8e\x80\x82\xf1\x82\xbe\x8f\xf3\x91\xd4\x82\xcc\x96\x82\x96""@""\x8e""g""\x82\xa2\x82\xaa\x8e\xf4\x95\xb6\x82\xf0\x8b""L""\x89\xaf\x82\xb7\x82\xe9\x82\xb1\x82\xc6\x82\xcd\x82\xc5\x82\xab\x82\xdc\x82\xb9\x82\xf1\x81""B", + "\x8b""C""\x90\xe2\x82\xe0\x82\xb5\x82\xad\x82\xcd\x8e\x80\x82\xf1\x82\xbe\x8f\xf3\x91\xd4\x82\xcc\x91""m""\x97\xb5\x82\xaa\x8e\xf4\x95\xb6\x82\xf0\x82\xb3\x82\xb8\x82\xa9\x82\xe9\x82\xb1\x82\xc6\x82\xcd\x82\xc5\x82\xab\x82\xdc\x82\xb9\x82\xf1\x81""B", + "\x82""P", + "\x82""Q", + "\x82""R", + "\x82""S", + "\x82""T", + "\x8c\x88\x82\xdf\x92\xbc\x82\xb5", + "\x8e""g""\x82\xa6\x82\xe9\x8e\xf4\x95\xb6\x81""F", + "\x82\xcd\x82\xa2", + "\x82\xa2\x82\xa2\x82\xa6" +}; + +static const StringListProvider kEoB1MenuStringsSpellsPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsSpellsPC98Japanese), kEoB1MenuStringsSpellsPC98Japanese }; + +static const char *const kEoB1MenuStringsRestPC98Japanese[5] = { + "\r""\x96\xfc\x82\xb5\x8e\xe8\x82\xc9\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcc\x8e\xa1\x97\xc3\x82\xf0\x82\xb3\x82\xb9\x82\xdc\x82\xb7\x82\xa9\x81""H", + "\x8f\x9d\x82\xf0\x95\x89\x82\xc1\x82\xbd\x82\xdc\x82\xdc\x82\xcc\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xaa\x82\xa2\x82\xdc\x82\xb7\x81""B\r""\x82\xb3\x82\xe7\x82\xc9\x8b""x""\x91\xa7\x82\xb5\x82\xdc\x82\xb7\x82\xa9\x81""H", + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x8b""x""\x91\xa7\x82\xb5\x82\xc4\x82\xa2\x82\xdc\x82\xb7\x81""B", + "\r""\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xcd\x91""S""\x88\xf5\x81""A""\x8a\xae\x91""S""\x89\xf1\x95\x9c\x82\xb5\x82\xdc\x82\xb5\x82\xbd\x81""B", + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x8e\xf4\x95\xb6\x82\xf0\x8e""g""\x82\xa6\x82\xe9\x82\xe6\x82\xa4\x82\xc9\x82\xb7\x82\xe9\x82\xcc\x82\xc9\x8b""x""\x91\xa7\x82\xf0\x95""K""\x97""v""\x82\xc6\x82\xb5\x82\xc4\x82\xa2\x82\xdc\x82\xb7\x81""B" +}; + +static const StringListProvider kEoB1MenuStringsRestPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsRestPC98Japanese), kEoB1MenuStringsRestPC98Japanese }; + +static const char *const kEoB1MenuStringsDropPC98Japanese[1] = { + "\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xaa\x82""R""\x90""l""\x88\xc8\x89\xba\x82\xc5\x82\xcd\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x91""g""\x82\xdf\x82\xdc\x82\xb9\x82\xf1\x81""B" +}; + +static const StringListProvider kEoB1MenuStringsDropPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsDropPC98Japanese), kEoB1MenuStringsDropPC98Japanese }; + +static const char *const kEoB1MenuStringsExitPC98Japanese[1] = { + "\x96""{""\x93\x96\x82\xc9\x83""Q""\x81""[""\x83\x80\x82\xf0\x82\xe2\x82\xdf\x82\xdc\x82\xb7\x82\xa9\x81""H" +}; + +static const StringListProvider kEoB1MenuStringsExitPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsExitPC98Japanese), kEoB1MenuStringsExitPC98Japanese }; + +static const char *const kEoB1MenuStringsStarvePC98Japanese[1] = { + "\x8b\xf3\x95\xa0\x82\xc8\x8f\xf3\x91\xd4\x82\xcc\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xaa\x82\xa2\x82\xdc\x82\xb7\x81""B\r""\x82\xb1\x82\xcc\x82\xdc\x82\xdc\x8b""x""\x91\xa7\x82\xf0\x91\xb1\x82\xaf\x82\xdc\x82\xb7\x82\xa9\x81""H" +}; + +static const StringListProvider kEoB1MenuStringsStarvePC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsStarvePC98Japanese), kEoB1MenuStringsStarvePC98Japanese }; + +static const char *const kEoB1MenuStringsScribePC98Japanese[5] = { + "\x8f\x91\x82\xab\x8e\xca\x82\xb5\x82\xbd\x82\xa2\x83""X""\x83""N""\x83\x8d\x81""[""\x83\x8b\x82\xf0\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B", + "\r\r\r""\x8e\xf4\x95\xb6\x82\xf0\x8f\x91\x82\xab\x8e\xca\x82\xb3\x82\xb9\x82\xbd\x82\xa2\x96\x82\x96""@""\x8e""g""\x82\xa2\x82\xf0\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xa9\x82\xe7\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B", + "\x8f\x91\x82\xab\x8e\xca\x82\xb9\x82\xe9\x83""X""\x83""N""\x83\x8d\x81""[""\x83\x8b\x82\xcd\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x93\xe0\x82\xc9\x82\xa0\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81""B", + "\x82\xb1\x82\xcc\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xc9\x95""K""\x97""v""\x82\xc8\x83""X""\x83""N""\x83\x8d\x81""[""\x83\x8b\x82\xcd\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x93\xe0\x82\xc9\x82\xa0\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81""B", + "\r""\x83""X""\x83""N""\x83\x8d\x81""[""\x83\x8b\x82\xf0\x8f\x91\x82\xab\x8e\xca\x82\xb7\x82\xb1\x82\xc6\x82\xcc\x82\xc5\x82\xab\x82\xe9\x96\x82\x96""@""\x8e""g""\x82\xa2\x82\xcd\x82\xa2\x82\xdc\x82\xb9\x82\xf1\x81""B" +}; + +static const StringListProvider kEoB1MenuStringsScribePC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsScribePC98Japanese), kEoB1MenuStringsScribePC98Japanese }; + +static const char *const kEoB1MenuStringsDrop2PC98Japanese[3] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xa9\x82\xe7\x82\xcd\x82\xb8\x82\xb5\x82\xbd\x82\xa2\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xf0""\r""\x91""I""\x82\xf1\x82\xc5\x82\xad\x82\xbe\x82\xb3\x82\xa2\x81""B", + "\x8c\xbb\x8d\xdd\x82\xcc\x83""Q""\x81""[""\x83\x80\x8f\xee\x95\xf1\x82\xf0\x95\xdb\x91\xb6\x82\xb5\x82\xdc\x82\xb7\x81""B\r""\x82\xa2\x82\xa2\x82\xc5\x82\xb7\x82\xa9\x81""H", + "\x95\xdb\x91\xb6\x82\xb5\x82\xc4\x82\xa0\x82\xe9\x83""Q""\x81""[""\x83\x80\x8f\xee\x95\xf1\x82\xf0\x93\xc7\x82\xdd\x8d\x9e\x82\xdd\x82\xdc\x82\xb7\x81""B\r""\x82\xa2\x82\xa2\x82\xc5\x82\xb7\x82\xa9\x81""H" +}; + +static const StringListProvider kEoB1MenuStringsDrop2PC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsDrop2PC98Japanese), kEoB1MenuStringsDrop2PC98Japanese }; + +static const char *const kEoB1MenuStringsHeadPC98Japanese[3] = { + "\x83""L""\x83\x83\x83\x93\x83""v""\x81""F", + "\x91""I""\x91\xf0\x81""F", + "\x95\xe2\x8f\x95\x8b""@""\x94""\\""\x81""F" +}; + +static const StringListProvider kEoB1MenuStringsHeadPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsHeadPC98Japanese), kEoB1MenuStringsHeadPC98Japanese }; + +static const char *const kEoB1MenuStringsPoisonPC98Japanese[1] = { + "\x93\xc5\x82\xf0\x8e\xf3\x82\xaf\x82\xc4\x82\xa2\x82\xe9\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xaa\x8e\x80\x82\xf1\x82\xc5\x82\xb5""\r""\x82\xdc\x82\xa2\x82\xdc\x82\xb7\x81""I\r""\x82\xbb\x82\xea\x82\xc5\x82\xe0\x8b""x""\x91\xa7\x82\xb5\x82\xdc\x82\xb7\x82\xa9\x81""H" +}; + +static const StringListProvider kEoB1MenuStringsPoisonPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsPoisonPC98Japanese), kEoB1MenuStringsPoisonPC98Japanese }; + +static const char *const kEoB1MenuStringsMgcPC98Japanese[2] = { + "%1d", + "\x91\x8d\x8c""v%d""\x8c\xc2\x81""A""\x8e""c""\x82\xe8""%d""\x8c\xc2\x82\xf0\x91""I""\x82\xd7\x82\xdc\x82\xb7\x81""B""\x81""@""\x81""@" +}; + +static const StringListProvider kEoB1MenuStringsMgcPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsMgcPC98Japanese), kEoB1MenuStringsMgcPC98Japanese }; + +static const char *const kEoB1MenuStringsPrefsPC98Japanese[4] = { + "\x89\xb9\x8a""y""\x81""@%-6s", + "\x8c\xf8\x89\xca\x89\xb9\x81""@%-6s", + "\x83""o""\x81""[""\x95""\\""\x8e\xa6\x81""@%-6s", + "\x83""}""\x83""E""\x83""X""\x81""@%-6s" +}; + +static const StringListProvider kEoB1MenuStringsPrefsPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsPrefsPC98Japanese), kEoB1MenuStringsPrefsPC98Japanese }; + +static const char *const kEoB1MenuStringsRest2PC98Japanese[4] = { + "%s""\x82\xcd""%s""\x82\xcc\x8e\xf4\x95\xb6\x82\xf0\x8e\xf6\x82\xa9\x82\xc1\x82\xbd\x81""B\r", + "%s""\x82\xcd""%s""\x82\xcc\x8e\xf4\x95\xb6\x82\xf0\x8b""L""\x89\xaf\x82\xb5\x82\xbd\x81""B\r", + "%s""\x82\xcd""%s""\x82\xc9\x8e\xa1\x96\xfc\x82\xcc\x8e\xf4\x95\xb6\x82\xf0\x82\xa9\x82\xaf\x82\xbd\x81""B\r", + "\x8b""x""\x8c""e""\x8e\x9e\x8a\xd4\x81""F""\x81""@%-4d""\x81""@""\x81""@""\x81""@""\x81""@" +}; + +static const StringListProvider kEoB1MenuStringsRest2PC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsRest2PC98Japanese), kEoB1MenuStringsRest2PC98Japanese }; + +static const char *const kEoB1MenuStringsRest4PC98Japanese[1] = { + "\r""\x82\xb1\x82\xb1\x82\xc5\x8b""x""\x91\xa7\x82\xb7\x82\xe9\x82\xb1\x82\xc6\x82\xcd\x82\xc5\x82\xab\x82\xc8\x82\xa2\x81""B""\x8b\xdf\x82\xad\x82\xc9\x83\x82\x83\x93\x83""X""\x83""^""\x81""[""\x82\xaa\x82\xa2\x82\xe9\x81""B\r" +}; + +static const StringListProvider kEoB1MenuStringsRest4PC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsRest4PC98Japanese), kEoB1MenuStringsRest4PC98Japanese }; + +static const char *const kEoB1MenuStringsDefeatPC98Japanese[1] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x91""S""\x96\xc5\x82\xb5\x82\xbd\x81""B\r\r""\x82\xb1\x82\xea\x82\xc5\x88\xab\x82\xcc\x88\xea\x96\xa1\x82\xcd\x8e\xd7\x96\x82\x82\xb3\x82\xea\x82\xe9\x82\xb1\x82\xc6\x82\xc8\x82\xad\x8c""v""\x89\xe6\x82\xf0\x8e\xc0\x8d""s""\x82\xc5\x82\xab\x82\xe9\x82\xbe\x82\xeb\x82\xa4\x81""B" +}; + +static const StringListProvider kEoB1MenuStringsDefeatPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuStringsDefeatPC98Japanese), kEoB1MenuStringsDefeatPC98Japanese }; + +static const char *const kEoB1MenuYesNoStringsPC98Japanese[2] = { + "\x82\xcd\x82\xa2", + "\x82\xa2\x82\xa2\x82\xa6" +}; + +static const StringListProvider kEoB1MenuYesNoStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1MenuYesNoStringsPC98Japanese), kEoB1MenuYesNoStringsPC98Japanese }; + +static const char *const kEoB1CharGuiStringsHpPC98Japanese[2] = { + "HP", + "%3d of %-3d" +}; + +static const StringListProvider kEoB1CharGuiStringsHpPC98JapaneseProvider = { ARRAYSIZE(kEoB1CharGuiStringsHpPC98Japanese), kEoB1CharGuiStringsHpPC98Japanese }; + +static const char *const kEoB1CharGuiStringsWp1PC98Japanese[2] = { + "MISS", + "HACK" +}; + +static const StringListProvider kEoB1CharGuiStringsWp1PC98JapaneseProvider = { ARRAYSIZE(kEoB1CharGuiStringsWp1PC98Japanese), kEoB1CharGuiStringsWp1PC98Japanese }; + +static const char *const kEoB1CharGuiStringsWrPC98Japanese[4] = { + "CAN'T", + "REACH", + "NO", + "AMMO" +}; + +static const StringListProvider kEoB1CharGuiStringsWrPC98JapaneseProvider = { ARRAYSIZE(kEoB1CharGuiStringsWrPC98Japanese), kEoB1CharGuiStringsWrPC98Japanese }; + +static const char *const kEoB1CharGuiStringsSt1PC98Japanese[6] = { + "Swapping", + "\x8e\x80\x82\xf1\x82\xc5\x82\xa2\x82\xe9", + "\x8b""C""\x90\xe2\x82\xb5\x82\xc4\x82\xa2\x82\xe9", + "\x93\xc5\x82\xf0\x8e\xf3\x82\xaf\x82\xc4\x82\xa2\x82\xe9\x81""i""\x92""x""\x82\xa2\x81""j", + "\x93\xc5\x82\xf0\x8e\xf3\x82\xaf\x82\xc4\x82\xa2\x82\xe9", + "\x96\x83\xe1\x83\x82\xb5\x82\xc4\x82\xa2\x82\xe9" +}; + +static const StringListProvider kEoB1CharGuiStringsSt1PC98JapaneseProvider = { ARRAYSIZE(kEoB1CharGuiStringsSt1PC98Japanese), kEoB1CharGuiStringsSt1PC98Japanese }; + +static const char *const kEoB1CharGuiStringsInPC98Japanese[4] = { + "\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x8f\xee\x95\xf1", + "\x83""A""\x81""[""\x83""}""\x81""[""\x83""N""\x83\x89\x83""X", + "\x8c""o""\x8c\xb1\x92""l", + "\x83\x8c\x83""x""\x83\x8b" +}; + +static const StringListProvider kEoB1CharGuiStringsInPC98JapaneseProvider = { ARRAYSIZE(kEoB1CharGuiStringsInPC98Japanese), kEoB1CharGuiStringsInPC98Japanese }; + +static const char *const kEoB1CharStatusStrings7PC98Japanese[1] = { + "%s""\x82\xcd\x83""W""\x83\x83\x83""C""\x83""A""\x83\x93\x83""g""\x81""E""\x83""X""\x83""g""\x83\x8c\x83\x93\x83""O""\x83""X""\x82\xcc\x8c\xf8\x89\xca\x82\xf0\x8e\xb8\x82\xc1\x82\xbd\x81""B\r" +}; + +static const StringListProvider kEoB1CharStatusStrings7PC98JapaneseProvider = { ARRAYSIZE(kEoB1CharStatusStrings7PC98Japanese), kEoB1CharStatusStrings7PC98Japanese }; + +static const char *const kEoB1CharStatusStrings81PC98Japanese[1] = { + "%s""\x82\xcd\x93\xc5\x82\xaa\x82\xdc\x82\xed\x82\xe9\x82\xcc\x82\xf0\x8a\xb4\x82\xb6\x82\xbd\x81""I\r" +}; + +static const StringListProvider kEoB1CharStatusStrings81PC98JapaneseProvider = { ARRAYSIZE(kEoB1CharStatusStrings81PC98Japanese), kEoB1CharStatusStrings81PC98Japanese }; + +static const char *const kEoB1CharStatusStrings9PC98Japanese[1] = { + "%s""\x82\xcd\x96\x83\xe1\x83\x82\xa9\x82\xe7\x89\xf0\x95\xfa\x82\xb3\x82\xea\x82\xbd\x81""I\r" +}; + +static const StringListProvider kEoB1CharStatusStrings9PC98JapaneseProvider = { ARRAYSIZE(kEoB1CharStatusStrings9PC98Japanese), kEoB1CharStatusStrings9PC98Japanese }; + +static const char *const kEoB1CharStatusStrings131PC98Japanese[1] = { + "%s""\x82\xcd""%s\r" +}; + +static const StringListProvider kEoB1CharStatusStrings131PC98JapaneseProvider = { ARRAYSIZE(kEoB1CharStatusStrings131PC98Japanese), kEoB1CharStatusStrings131PC98Japanese }; + +static const char *const kEoB1LevelGainStringsPC98Japanese[1] = { + "\x06\x01""%s""\x82\xcd\x83\x8c\x83""x""\x83\x8b\x82\xaa\x82\xa0\x82\xaa\x82\xe9\x82\xcc\x82\xc9\x95""K""\x97""v""\x82\xc8\x8c""o""\x8c\xb1\x92""l""\x82\xf0\x93\xbe\x82\xbd\x81""B""\x06\x0f""\r" +}; + +static const StringListProvider kEoB1LevelGainStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1LevelGainStringsPC98Japanese), kEoB1LevelGainStringsPC98Japanese }; + +static const char *const kEoB1BookNumbersPC98Japanese[5] = { + "First", + "Second", + "Third", + "Fourth", + "Fifth" +}; + +static const StringListProvider kEoB1BookNumbersPC98JapaneseProvider = { ARRAYSIZE(kEoB1BookNumbersPC98Japanese), kEoB1BookNumbersPC98Japanese }; + +static const char *const kEoB1MageSpellsListPC98Japanese[26] = { + "", + "\x83""A""\x81""[""\x83""}""\x81""[", + "\x83""o""\x81""[""\x83""j""\x83\x93\x83""O""\x81""E""\x83""n""\x83\x93\x83""Y", + "\x83""f""\x83""B""\x83""e""\x83""N""\x83""g""\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""}""\x83""W""\x83""b""\x83""N""\x81""E""\x83""~""\x83""T""\x83""C""\x83\x8b", + "\x83\x8a\x81""[""\x83""h""\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""V""\x81""[""\x83\x8b\x83""h", + "\x83""V""\x83\x87\x83""b""\x83""L""\x83\x93\x83""O""\x81""E""\x83""O""\x83\x89\x83""X""\x83""v", + "\x83""C""\x83\x93\x83""r""\x83""W""\x83""r""\x83\x8a\x83""e""\x83""B", + "\x83""m""\x83""b""\x83""N", + "\x83\x81\x83\x8b\x83""t""\x83""Y""\x81""E""\x83""A""\x83""V""\x83""b""\x83""h""\x81""E""\x83""A""\x83\x8d\x81""[", + "\x83""X""\x83""e""\x83""B""\x83\x93\x83""L""\x83\x93\x83""O""\x81""E""\x83""N""\x83\x89\x83""E""\x83""h", + "\x83""f""\x83""B""\x83""X""\x83""y""\x83\x8b\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""t""\x83""@""\x83""C""\x83""A""\x83""{""\x81""[""\x83\x8b", + "\x83""t""\x83\x8c\x83""C""\x83\x80\x81""E""\x83""A""\x83\x8d\x81""[", + "\x83""w""\x83""C""\x83""X""\x83""g", + "\x83""z""\x81""[""\x83\x8b\x83""h""\x81""E""\x83""p""\x81""[""\x83""X""\x83\x93", + "\x83""C""\x83\x93\x83""r""\x83""W""\x83""r""\x83\x8a\x83""e""\x83""B""\x82""P""\x82""O", + "\x83\x89\x83""C""\x83""g""\x83""j""\x83\x93\x83""O""\x81""E""\x83""{""\x83\x8b\x83""g", + "\x83""o""\x83\x93\x83""s""\x83\x8a\x83""b""\x83""N""\x81""E""\x83""^""\x83""b""\x83""`", + "\x83""t""\x83""B""\x83""A", + "\x83""A""\x83""C""\x83""X""\x81""E""\x83""X""\x83""g""\x81""[""\x83\x80", + "\x83""X""\x83""g""\x81""[""\x83\x93\x83""X""\x83""L""\x83\x93", + "\x83""N""\x83\x89\x83""E""\x83""h""\x83""L""\x83\x8b", + "\x83""R""\x81""[""\x83\x93\x81""E""\x83""I""\x83""u""\x81""E""\x83""R""\x81""[""\x83\x8b\x83""h", + "\x83""z""\x81""[""\x83\x8b\x83""h""\x81""E""\x83\x82\x83\x93\x83""X""\x83""^""\x81""[" +}; + +static const StringListProvider kEoB1MageSpellsListPC98JapaneseProvider = { ARRAYSIZE(kEoB1MageSpellsListPC98Japanese), kEoB1MageSpellsListPC98Japanese }; + +static const char *const kEoB1ClericSpellsListPC98Japanese[25] = { + "", + "\x83""u""\x83\x8c\x83""X", + "\x83""L""\x83\x85\x83""A""\x81""E""\x83\x89\x83""C""\x83""g""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""R""\x81""[""\x83""Y""\x81""E""\x83\x89\x83""C""\x83""g""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""f""\x83""B""\x83""e""\x83""N""\x83""g""\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""v""\x83\x8d\x83""e""\x83""N""\x83""g""\x81""E""\x83""C""\x81""[""\x83""r""\x83\x8b", + "\x83""G""\x83""C""\x83""h", + "\x83""t""\x83\x8c\x83""C""\x83\x80\x81""E""\x83""u""\x83\x8c\x81""[""\x83""h", + "\x83""z""\x81""[""\x83\x8b\x83""h""\x81""E""\x83""p""\x81""[""\x83""X""\x83\x93", + "\x83""X""\x83\x8d\x81""[""\x81""E""\x83""|""\x83""C""\x83""Y""\x83\x93", + "\x83""N""\x83\x8a\x83""G""\x83""C""\x83""g""\x81""E""\x83""t""\x81""[""\x83""h", + "\x83""f""\x83""B""\x83""X""\x83""y""\x83\x8b\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""}""\x83""W""\x83""J""\x83\x8b\x81""E""\x83""x""\x83""X""\x83""g""\x83\x81\x83\x93\x83""g", + "\x83""v""\x83\x8c\x83""C""\x83\x84\x81""[", + "\x83\x8a\x83\x80\x81""[""\x83""u""\x81""E""\x83""p""\x83\x89\x83\x8a\x83""V""\x83""X", + "\x83""L""\x83\x85\x83""A""\x81""E""\x83""V""\x83\x8a\x83""A""\x83""X""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""R""\x81""[""\x83""Y""\x81""E""\x83""V""\x83\x8a\x83""A""\x83""X""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""j""\x83\x85\x81""[""\x83""g""\x83\x89\x83\x89\x83""C""\x83""Y""\x81""E""\x83""|""\x83""C""\x83""Y""\x83\x93", + "\x83""v""\x83\x8d\x83""e""\x83""N""\x83""V""\x83\x87\x83\x93\x81""E""\x83""C""\x81""[""\x83""r""\x83\x8b\x82""P""\x82""O", + "\x83""v""\x83\x8d\x83""e""\x83""N""\x83""V""\x83\x87\x83\x93\x81""E""\x83\x89\x83""C""\x83""g""\x83""j""\x83\x93\x83""O", + "\x83""L""\x83\x85\x83""A""\x81""E""\x83""N""\x83\x8a\x83""e""\x83""B""\x83""J""\x83\x8b\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""R""\x81""[""\x83""Y""\x81""E""\x83""N""\x83\x8a\x83""e""\x83""B""\x83""J""\x83\x8b\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""t""\x83\x8c\x83""C""\x83\x80\x81""E""\x83""X""\x83""g""\x83\x89\x83""C""\x83""N", + "\x83\x8c\x83""C""\x83""Y""\x81""E""\x83""f""\x83""b""\x83""h", + "\x83\x8c\x83""C""\x81""E""\x83""I""\x83\x93\x81""E""\x83""n""\x83\x93\x83""Y" +}; + +static const StringListProvider kEoB1ClericSpellsListPC98JapaneseProvider = { ARRAYSIZE(kEoB1ClericSpellsListPC98Japanese), kEoB1ClericSpellsListPC98Japanese }; + +static const char *const kEoB1SpellNamesPC98Japanese[51] = { + "", + "\x83""A""\x81""[""\x83""}""\x81""[", + "\x83""o""\x81""[""\x83""j""\x83\x93\x83""O""\x81""E""\x83""n""\x83\x93\x83""Y", + "\x83""f""\x83""B""\x83""e""\x83""N""\x83""g""\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""}""\x83""W""\x83""b""\x83""N""\x81""E""\x83""~""\x83""T""\x83""C""\x83\x8b", + "\x83""V""\x81""[""\x83\x8b\x83""h", + "\x83""V""\x83\x87\x83""b""\x83""L""\x83\x93\x83""O""\x81""E""\x83""O""\x83\x89\x83""X""\x83""v", + "\x83""C""\x83\x93\x83""r""\x83""W""\x83""r""\x83\x8a\x83""e""\x83""B", + "\x83\x81\x83\x8b\x83""t""\x83""Y""\x81""E""\x83""A""\x83""V""\x83""b""\x83""h""\x81""E""\x83""A""\x83\x8d\x81""[", + "\x83""X""\x83""e""\x83""B""\x83\x93\x83""L""\x83\x93\x83""O""\x81""E""\x83""N""\x83\x89\x83""E""\x83""h", + "\x83""f""\x83""B""\x83""X""\x83""y""\x83\x8b\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""t""\x83""@""\x83""C""\x83""A""\x83""{""\x81""[""\x83\x8b", + "\x83""t""\x83\x8c\x83""C""\x83\x80\x81""E""\x83""A""\x83\x8d\x81""[", + "\x83""w""\x83""C""\x83""X""\x83""g", + "\x83""z""\x81""[""\x83\x8b\x83""h""\x81""E""\x83""p""\x81""[""\x83""X""\x83\x93", + "\x83""C""\x83\x93\x83""r""\x83""W""\x83""r""\x83\x8a\x83""e""\x83""B""\x82""P""\x82""O""\x83""t""\x83""B""\x81""[""\x83""g""\x81""E""\x83\x8c\x83""C""\x83""f""\x83""B""\x83""A""\x83""X", + "\x83\x89\x83""C""\x83""g""\x83""j""\x83\x93\x83""O""\x81""E""\x83""{""\x83\x8b\x83""g", + "\x83""o""\x83\x93\x83""s""\x83\x8a\x83""b""\x83""N""\x81""E""\x83""^""\x83""b""\x83""`", + "\x83""t""\x83""B""\x83""A", + "\x83""A""\x83""C""\x83""X""\x81""E""\x83""X""\x83""g""\x81""[""\x83\x80", + "\x83""X""\x83""g""\x81""[""\x83\x93\x83""X""\x83""L""\x83\x93", + "\x83""N""\x83\x89\x83""E""\x83""h""\x83""L""\x83\x8b", + "\x83""R""\x81""[""\x83\x93\x81""E""\x83""I""\x83""u""\x81""E""\x83""R""\x81""[""\x83\x8b\x83""h", + "\x83""z""\x81""[""\x83\x8b\x83""h""\x81""E""\x83\x82\x83\x93\x83""X""\x83""^""\x81""[", + "\x83""u""\x83\x8c\x83""X", + "\x83""L""\x83\x85\x83""A""\x81""E""\x83\x89\x83""C""\x83""g""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""R""\x81""[""\x83""Y""\x81""E""\x83\x89\x83""C""\x83""g""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""f""\x83""B""\x83""e""\x83""N""\x83""g""\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""v""\x83\x8d\x83""e""\x83""N""\x83""V""\x83\x87\x83\x93\x81""E""\x83""C""\x81""[""\x83""r""\x83\x8b", + "\x83""G""\x83""C""\x83""h", + "\x83""t""\x83\x8c\x83""C""\x83\x80\x81""E""\x83""u""\x83\x8c\x81""[""\x83""h", + "\x83""z""\x81""[""\x83\x8b\x83""h""\x81""E""\x83""p""\x81""[""\x83""X""\x83\x93", + "\x83""X""\x83\x8d\x81""[""\x81""E""\x83""|""\x83""C""\x83""Y""\x83\x93", + "\x83""N""\x83\x8a\x83""G""\x83""C""\x83""g""\x81""E""\x83""t""\x81""[""\x83""h", + "\x83""f""\x83""B""\x83""X""\x83""y""\x83\x8b\x81""E""\x83""}""\x83""W""\x83""b""\x83""N", + "\x83""}""\x83""W""\x83""J""\x83\x8b\x81""E""\x83""x""\x83""X""\x83""g""\x83\x81\x83\x93\x83""g", + "\x83""v""\x83\x8c\x83""C""\x83\x84\x81""[", + "\x83\x8a\x83\x80\x81""[""\x83""u""\x81""E""\x83""p""\x83\x89\x83\x8a\x83""V""\x83""X", + "\x83""L""\x83\x85\x83""A""\x81""E""\x83""V""\x83\x8a\x83""A""\x83""X""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""R""\x81""[""\x83""Y""\x81""E""\x83""V""\x83\x8a\x83""A""\x83""X""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""j""\x83\x85\x81""[""\x83""g""\x83\x89\x83\x89\x83""C""\x83""Y""\x81""E""\x83""|""\x83""C""\x83""Y""\x83\x93", + "\x83""v""\x83\x8d\x83""e""\x83""N""\x83""V""\x83\x87\x83\x93\x81""E""\x83""C""\x81""[""\x83""r""\x83\x8b\x82""P""\x82""O", + "\x83""v""\x83\x8d\x83""e""\x83""N""\x83""V""\x83\x87\x83\x93\x81""E""\x83\x89\x83""C""\x83""g""\x83""j""\x83\x93\x83""O", + "\x83""L""\x83\x85\x83""A""\x81""E""\x83""N""\x83\x8a\x83""e""\x83""B""\x83""J""\x83\x8b\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""R""\x81""[""\x83""Y""\x81""E""\x83""N""\x83\x8a\x83""e""\x83""B""\x83""J""\x83\x8b\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y", + "\x83""t""\x83\x8c\x83""C""\x83\x80\x81""E""\x83""X""\x83""g""\x83\x89\x83""C""\x83""N", + "\x83\x8c\x83""C""\x83""Y""\x81""E""\x83""f""\x83""b""\x83""h", + "\x83\x8c\x83""C""\x81""E""\x83""I""\x83\x93\x81""E""\x83""n""\x83\x93\x83""Y", + "", + "", + "" +}; + +static const StringListProvider kEoB1SpellNamesPC98JapaneseProvider = { ARRAYSIZE(kEoB1SpellNamesPC98Japanese), kEoB1SpellNamesPC98Japanese }; + +static const char *const kEoB1MagicStrings1PC98Japanese[6] = { + "ABORT SPELL", + "ABORT SPELL", + "\x82\xb1\x82\xcc\x8e\xf4\x95\xb6\x82\xf0\x82\xa9\x82\xaf\x82\xe9\x82\xc9\x82\xcd\x95\xd0\x8e\xe8\x82\xaa\x8e\xa9\x97""R""\x82\xc5\x82\xc8\x82\xaf\x82\xea\x82\xce\x82\xa2\x82\xaf\x82\xc8\x82\xa2\x81""B\r", + "\x82\xb1\x82\xcc\x83""^""\x83""C""\x83""v""\x82\xcc\x8e\xf4\x95\xb6\x82\xcd\x93\xaf\x8e\x9e\x82\xc9\x82""Q""\x82\xc2\x8c\xf8\x89\xca\x82\xf0\x8e\x9d\x82\xc2\x82\xb1\x82\xc6\x82\xcd\x82\xc5\x82\xab\x82\xc8\x82\xa2\x81""B\r", + "%s""\x82\xcd""%s""\x82\xcc\x8e\xf4\x95\xb6\x82\xf0\x8f\xa5\x82\xa6\x82\xbd""\r", + "\x82\x8f\x82\x8b""\r" +}; + +static const StringListProvider kEoB1MagicStrings1PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicStrings1PC98Japanese), kEoB1MagicStrings1PC98Japanese }; + +static const char *const kEoB1MagicStrings2PC98Japanese[3] = { + "\x89""e""\x8b\xbf\x82\xcd\x82\xc8\x82\xa9\x82\xc1\x82\xbd\x81""B\r", + "%s""\x82\xcd\x82\xce\x82\xe7\x82\xce\x82\xe7\x82\xc9\x95\xaa\x89\xf0\x82\xb5\x82\xc4\x82\xb5\x82\xdc\x82\xc1\x82\xbd\x81""I\r", + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x8e\x80\x82\xcc\x8e\xf4\x95\xb6\x82\xc5\x8d""U""\x8c\x82\x82\xb3\x82\xea\x82\xbd\x81""I\r", +}; + +static const StringListProvider kEoB1MagicStrings2PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicStrings2PC98Japanese), kEoB1MagicStrings2PC98Japanese }; + +static const char *const kEoB1MagicStrings3PC98Japanese[6] = { + "\x82\xc7\x82\xcc\x83""L""\x83\x83\x83\x89\x83""N""\x83""^""\x81""[""\x82\xc9\x8e\xf4\x95\xb6\x82\xf0\x82\xa9\x82\xaf\x82\xdc\x82\xb7\x82\xa9\x81""H""\x81""@", + "\r""\x82\x8f\x82\x8b""\r", + "\r""\x8e\xf4\x95\xb6\x82\xcd\x8e\xb8\x82\xed\x82\xea\x82\xbd\x81""B\r", + "%s""\x82\xc9\x82\xa9\x82\xa9\x82\xc1\x82\xc4\x82\xa2\x82\xbd""%s""\x82\xcc\x8c\xf8\x89\xca\x82\xaa\x82\xc8\x82\xad\x82\xc8\x82\xc1\x82\xbd\x81""B\r", + "%s""\x82\xcc\x8e\xf4\x95\xb6\x82\xcd\x83\x82\x83\x93\x83""X""\x83""^""\x81""[""\x82\xc9\x8c\xf8\x89\xca\x82\xaa\x82\xc8\x82\xa9\x82\xc1\x82\xbd\x81""B\r", + "%s""\x82\xaa\x8d""U""\x8c\x82\x82\xb7\x82\xe9\x82\xc9\x82\xcd\x91""O""\x97\xf1\x82\xc9\x82\xa2\x82\xc8\x82\xaf\x82\xea\x82\xce\x82\xc8\x82\xe7\x82\xc8\x82\xa2\x81""B\r" +}; + +static const StringListProvider kEoB1MagicStrings3PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicStrings3PC98Japanese), kEoB1MagicStrings3PC98Japanese }; + +static const char *const kEoB1MagicStrings4PC98Japanese[1] = { + "\x89""e""\x8b\xbf\x82\xcd\x82\xc8\x82\xa9\x82\xc1\x82\xbd\x81""B\r" +}; + +static const StringListProvider kEoB1MagicStrings4PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicStrings4PC98Japanese), kEoB1MagicStrings4PC98Japanese }; + +static const char *const kEoB1MagicStrings6PC98Japanese[1] = { + "%s""\x82\xcc\x83""A""\x81""[""\x83""}""\x81""[""\x81""E""\x83""N""\x83\x89\x83""X""\x82\xcd\x82\xb7\x82\xc5\x82\xc9\x8f""[""\x95\xaa\x8d\x82\x82\xa2\x81""B\r" +}; + +static const StringListProvider kEoB1MagicStrings6PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicStrings6PC98Japanese), kEoB1MagicStrings6PC98Japanese }; + +static const char *const kEoB1MagicStrings7PC98Japanese[5] = { + "1ST", + "2ND", + "3RD", + "4TH", + "5TH" +}; + +static const StringListProvider kEoB1MagicStrings7PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicStrings7PC98Japanese), kEoB1MagicStrings7PC98Japanese }; + +static const char *const kEoB1MagicStrings8PC98Japanese[3] = { + "%s""\x82\xc9\x82\xa9\x82\xa9\x82\xc1\x82\xc4\x82\xa2\x82\xbd\x8e\xf4\x95\xb6\x82\xcd\x82\xb7\x82\xd7\x82\xc4\x8f\xc1\x82\xb5\x8b\x8e\x82\xe7\x82\xea\x82\xbd\x81""B\r", + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x82\xb7\x82\xc5\x82\xc9\x8f""j""\x95\x9f\x82\xf0\x8e\xf3\x82\xaf\x82\xc4\x82\xa2\x82\xe9\x81""I\r", + "\x89\x87\x8f\x95\x82\xcc\x8e\xf4\x95\xb6\x82\xcd\x8e\xb8\x94""s""\x82\xb5\x82\xbd\x81""I\r" +}; + +static const StringListProvider kEoB1MagicStrings8PC98JapaneseProvider = { ARRAYSIZE(kEoB1MagicStrings8PC98Japanese), kEoB1MagicStrings8PC98Japanese }; + +static const char *const kEoB1MonsterDistAttStringsPC98Japanese[5] = { + "%s""\x82\xcd\x83""R""\x81""[""\x83""Y""\x81""E""\x83""V""\x83\x8a\x83""A""\x83""X""\x81""E""\x83""E""\x81""[""\x83\x93\x83""Y""\x82\xcc\x8e\xf4\x95\xb6\x82\xc5\x8d""U""\x8c\x82\x82\xb3\x82\xea\x82\xbd\x81""I\r", + "\x83""p""\x81""[""\x83""e""\x83""B""\x82\xcd\x90\xb8\x90""_""\x94""g""\x8d""U""\x8c\x82\x82\xf0\x8e\xf3\x82\xaf\x82\xbd\x81""I\r", + "\x96\x83\xe1\x83\x82\xb5\x82\xc4\x82\xa2\x82\xe9", + "\x93\xc5\x82\xf0\x8e\xf3\x82\xaf\x82\xbd", + "\x96\x83\xe1\x83\x82\xb5\x82\xbd" +}; + +static const StringListProvider kEoB1MonsterDistAttStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB1MonsterDistAttStringsPC98Japanese), kEoB1MonsterDistAttStringsPC98Japanese }; + +static const char *const kEoB1IntroStringsTowerPC98[3] = { + "\x83""E""\x83""H""\x81""[""\x83""^""\x81""[""\x83""f""\x83""B""\x81""[""\x83""v""\x82\xc9\x8e\xd7\x88\xab\x82\xcc\x89""e""\x82\xaa\x94""E""\x82\xd1\x8a\xf1\x82\xc1\x82\xc4\x82\xa2\x82\xe9\x81""B", + "\x82\xed\x82\xea\x82\xed\x82\xea\x97\xcc\x8e\xe5\x82\xcd\x81""A""\x82\xbb\x82\xea\x82\xf0\x8e\xe6\x82\xe8\x8f\x9c\x82\xad\x95\xfb\x8d\xf4\x82\xf0\x8c\xa9\x82\xc2\x82\xaf\x82\xcb\x82\xce\x82\xc8\x82\xe7\x82\xca\x81""B", + "\x8d\x91\x92\x86\x82\xcc\x89""p""\x97""Y""\x82\xbd\x82\xbf\x82\xc9\x8c\xc4\x82\xd1\x82\xa9\x82\xaf\x81""A""\x97""E""\x8e""m""\x82\xf0\x91""I""\x82\xda\x82\xa4\x81""B" +}; + +static const StringListProvider kEoB1IntroStringsTowerPC98Provider = { ARRAYSIZE(kEoB1IntroStringsTowerPC98), kEoB1IntroStringsTowerPC98 }; + +static const char *const kEoB1IntroStringsOrbPC98[1] = { + "\x82\xb2\x8e\xe5\x90""l""\x82\xb3\x82\xdc\x81""c""\x81""c""\x81""B" +}; + +static const StringListProvider kEoB1IntroStringsOrbPC98Provider = { ARRAYSIZE(kEoB1IntroStringsOrbPC98), kEoB1IntroStringsOrbPC98 }; + +static const char *const kEoB1IntroStringsWdEntryPC98[1] = { + "\x82\xe2\x82\xc2\x82\xe7\x82\xcd\x82\xc2\x82\xdc\x82\xe7\x82\xca\x92\xef\x8d""R""\x82\xf0\x8d""l""\x82\xa6\x82\xbd\x82\xe6\x82\xa4\x82\xc5\x82\xb7\x81""B" +}; + +static const StringListProvider kEoB1IntroStringsWdEntryPC98Provider = { ARRAYSIZE(kEoB1IntroStringsWdEntryPC98), kEoB1IntroStringsWdEntryPC98 }; + +static const char *const kEoB1IntroStringsKingPC98[1] = { + "\x8c""N""\x82\xbd\x82\xbf\x82\xc9\x94""C""\x96\xb1\x82\xf0\x82\xbd\x82\xad\x82\xb7\x81""B""\x82\xb1\x82\xcc\x88\xab\x82\xcc\x96""{""\x8e\xbf\x82\xf0\x92""T""\x82\xe8\x81""A""\x82\xb3\x82\xe7\x82\xc9\x82\xcd\x94""j""\x89\xf3\x82\xb9\x82\xe6\x81""B" +}; + +static const StringListProvider kEoB1IntroStringsKingPC98Provider = { ARRAYSIZE(kEoB1IntroStringsKingPC98), kEoB1IntroStringsKingPC98 }; + +static const char *const kEoB1IntroStringsHandsPC98[1] = { + "\x8a\xeb\x8c\xaf\x82\xc8\x97\xb7\x82\xc5\x82\xa0\x82\xeb\x82\xa4\x81""B""\x8f\x80\x94\xf5\x82\xf0\x91\xd3\x82\xe9\x82\xc8\x81""B" +}; + +static const StringListProvider kEoB1IntroStringsHandsPC98Provider = { ARRAYSIZE(kEoB1IntroStringsHandsPC98), kEoB1IntroStringsHandsPC98 }; + +static const char *const kEoB1IntroStringsWdExitPC98[1] = { + "\x92""T""\x8d\xf5\x82\xcd\x92\xac\x82\xcc\x92""n""\x89\xba\x82\xa9\x82\xe7\x82\xcd\x82\xb6\x82\xdf\x82\xc4\x82\xad\x82\xea\x81""B" +}; + +static const StringListProvider kEoB1IntroStringsWdExitPC98Provider = { ARRAYSIZE(kEoB1IntroStringsWdExitPC98), kEoB1IntroStringsWdExitPC98 }; + +static const char *const kEoB1IntroStringsTunnelPC98[1] = { + "\x82\xe2\x82\xc2\x82\xe7\x82\xcc\x89""^""\x96\xbd\x82\xcd\x95\x95\x82\xb6\x82\xe7\x82\xea\x82\xbd\x81""B" +}; + +static const StringListProvider kEoB1IntroStringsTunnelPC98Provider = { ARRAYSIZE(kEoB1IntroStringsTunnelPC98), kEoB1IntroStringsTunnelPC98 }; + +static const char *const kEoB1FinaleStringsPC98[17] = { + "\x83""p""\x81""[""\x83""e""\x83""B""\x82\xcd\x82\xae\x82\xbf\x82\xe1\x82\xae\x82\xbf\x82\xe1\x82\xc9\x82\xc8\x82\xc1\x82\xbd\x83""N""\x83""T""\x83""i""\x83""^""\x81""[""\x83\x8b\x82\xcc\x8e\x80\x91\xcc\x82\xcc\x8e""c""\x8a""[""\x82\xf0\x92""T""\x82\xc1\x82\xbd\x81""B", + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x83""N""\x83""T""\x83""i""\x83""^""\x81""[""\x83\x8b\x82\xf0\x93""|""\x82\xb5\x82\xbd\x81""B", + "\x83""p""\x81""[""\x83""e""\x83""B""\x81""[""\x82\xcd\x8e\xe5\x82\xcc\x82\xa2\x82\xc8\x82\xa2\x83""N""\x83""T""\x83""i""\x83""^""\x81""[""\x83\x8b\x82\xcc\x91\x83\x82\xf0\x82\xb3\x82\xdc\x82\xe6\x82\xa2\x81""A", + "\x8f""o""\x8c\xfb\x82\xd6\x82\xcc\x8e\xe8\x82\xaa\x82\xa9\x82\xe8\x82\xf0\x92""T""\x82\xb5\x82\xbd\x81""B", + "\x82\xbb\x82\xcc\x82\xa4\x82\xbf\x82\xc9\x92\x86\x82\xcc\x83""e""\x83\x8c\x83""|""\x81""[""\x83""^""\x82\xcc\x83""X""\x83""C""\x83""b""\x83""`""\x82\xaa\x93\xfc\x82\xc1\x82\xc4\x82\xb5\x82\xdc\x82\xc1\x82\xbd\x81""B", + "\x83""p""\x81""[""\x83""e""\x83""B""\x82\xcc\x82\xdc\x82\xed\x82\xe8\x82\xc5\x91\x91\x8c\xb5\x82\xc8\x91\xe5\x97\x9d\x90\xce\x82\xcc\x95\x94\x89\xae\x82\xaa\x82\xb5\x82\xbe\x82\xa2\x82\xc9\x96\xbe\x82\xe9\x82\xb3\x82\xf0\x91\x9d\x82\xb5\x82\xbd\x81""B""\x07", + "\x82""Q""\x96""{""\x82\xcc\x90\xce\x92\x8c\x82\xaa\x91\xe5\x82\xab\x82\xc8\x8b\xca\x8d\xc0\x82\xcc\x97\xbc\x98""e""\x82\xc9\x82\xbb\x82\xd1\x82\xa6\x82\xc4\x82\xa2\x82\xe9\x81""B""\x07", + "\x82\xb1\x82\xb1\x82\xcd\x83""s""\x83""A""\x83""W""\x83""F""\x83""C""\x83\x8d\x83\x93\x82\xcc\x89""y""\x8c\xa9\x82\xcc\x8a\xd4\x82\xbe\x81""B""\x07", + "\x83""p""\x81""[""\x83""e""\x83""B""\x82\xcd\x83""E""\x83""H""\x81""[""\x83""^""\x81""[""\x83""f""\x83""B""\x81""[""\x83""v""\x92""n""\x89\xba\x82\xcc\x96\xc0\x8b""{""\x82\xa9\x82\xe7\x82\xe2\x82\xc1\x82\xc6\x89\xf0\x95\xfa\x82\xb3\x82\xea\x82\xbd\x82\xcc\x82\xbe\x81""B", + "\x82\xa8\x82\xdf\x82\xc5\x82\xc6\x82\xa4\x81""I""\x81""I", + "\x82\xa0\x82\xc8\x82\xbd\x82\xcd\x82""P""\x82""Q""\x82\xcc\x93\xc1\x95\xca\x92""T""\x8d\xf5\x82\xf0\x82\xb7\x82\xd7\x82\xc4\x92""B""\x90\xac\x82\xb5\x82\xdc\x82\xb5\x82\xbd\x81""B", + "\x83""{""\x81""[""\x83""i""\x83""X""\x82\xf0\x8f\x9f\x82\xbf\x8e\xe6\x82\xc1\x82\xbd", + "\x81""u""\x8c""N""\x92""B""\x82\xcd\x83""N""\x83""T""\x83""i""\x83""^""\x81""[""\x83\x8b\x82\xf0\x93""|""\x82\xb5\x81""A""\x83""E""\x83""H""\x81""[""\x83""^""\x81""[""\x83""f""\x83""B""\x81""[""\x83""v""\x82\xf0\x93""z""\x82\xcc\x88\xab\x82\xa9\x82\xe7\x8b""~""\x82\xc1\x82\xc4\x82\xad\x82\xea\x82\xbd\x81""I""\x81""v""\x82\xc6\x07", + "\x83""s""\x83""A""\x83""W""\x83""F""\x83""C""\x83\x8d\x83\x93\x81""E""\x83""p""\x83\x89\x83""f""\x83""B""\x83\x93\x83""\\""\x83\x93\x82\xaa\x90\xba\x8d\x82\x82\xc9\x8c\xbe\x82\xa4\x81""B""\x07", + "\x82\xb1\x82\xcc\x82\xe6\x82\xa4\x82\xc9\x97""L""\x94""\\""\x82\xc5\x8d\xcb\x8a""o""\x82\xcc\x82\xa0\x82\xe9\x96""`""\x8c\xaf\x8e\xd2\x82\xf0\x91""I""\x82\xf1\x82\xc5\x90\xb3\x89\xf0\x82\xbe\x82\xc1\x82\xbd\x81""B""\x07", + "\x8d\xa1\x93\xfa\x82\xe6\x82\xe8\x82\xbb\x82\xc8\x82\xbd\x92""B""\x82\xcd\x81""u""\x83""E""\x83""H""\x81""[""\x83""^""\x81""[""\x83""f""\x83""B""\x81""[""\x83""v""\x82\xcc\x89""p""\x97""Y""\x81""v""\x82\xcc\x96\xbc\x82\xc5\x8c\xc4\x82\xce\x82\xea\x81""A""\x07", + "\x82\xb7\x82\xd7\x82\xc4\x82\xcc\x82\xe0\x82\xcc\x82\xaa\x82\xbb\x82\xcc\x97""E""\x8a\xb8\x82\xc8\x82\xd3\x82\xe9\x82\xdc\x82\xa2\x82\xf0\x92""m""\x82\xe9\x82\xb1\x82\xc6\x82\xbe\x82\xeb\x82\xa4\x81""I ""\x92""T""\x8d\xf5\x92""B""\x90\xac\x81""A""\x82\xa8\x82\xdf\x82\xc5\x82\xc6\x82\xa4\x81""I" +}; + +static const StringListProvider kEoB1FinaleStringsPC98Provider = { ARRAYSIZE(kEoB1FinaleStringsPC98), kEoB1FinaleStringsPC98 }; diff --git a/devtools/create_kyradat/resources/eob2_fmtowns_japanese.h b/devtools/create_kyradat/resources/eob2_fmtowns_japanese.h index 49a815d057..85d75705ed 100644 --- a/devtools/create_kyradat/resources/eob2_fmtowns_japanese.h +++ b/devtools/create_kyradat/resources/eob2_fmtowns_japanese.h @@ -474,6 +474,17 @@ static const char *const kEoB2MenuStringsDefeatFMTownsJapanese[1] = { static const StringListProvider kEoB2MenuStringsDefeatFMTownsJapaneseProvider = { ARRAYSIZE(kEoB2MenuStringsDefeatFMTownsJapanese), kEoB2MenuStringsDefeatFMTownsJapanese }; +static const char *const kEoB2MenuStringsTransferFMTownsJapanese[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 ""\x83""p""\x81""[""\x83""e""\x83""B""\x82\xc9\x83\x81\x83""C""\x83""W""\x82\xaa\x82\xa2\x82\xdc\x82\xb9\x82\xf1\x81""B", + " \r ""\x83""p""\x81""[""\x83""e""\x83""B""\x82\xc9\x83""N""\x83\x8c\x83\x8a\x83""b""\x83""N""\x82\xe0\x83""p""\x83\x89\x83""f""\x83""B""\x83\x93""\r ""\x82\xe0\x82\xa2\x82\xdc\x82\xb9\x82\xf1\x81""B" +}; + +static const StringListProvider kEoB2MenuStringsTransferFMTownsJapaneseProvider = { ARRAYSIZE(kEoB2MenuStringsTransferFMTownsJapanese), kEoB2MenuStringsTransferFMTownsJapanese }; + + static const char *const kEoB2MenuStringsSpecFMTownsJapanese[2] = { "\r ""\x96\xDA\x82\xAA\x8A""o""\x82\xDF\x82\xE9\x82\xC6\x81""A""\x83""V""\x81""[""\x83""t""\x82\xCC\x83""C""\x83\x93\x83""T""\x83\x8B\x82\xAA""\r ""\x82\xA2\x82\xC8\x82\xAD\x82\xC8\x82\xC1\x82\xC4\x82\xA2\x82\xBD\x81""I", " ""\x8E\x9D\x82\xBF\x95\xA8\x82\xAA\x82\xC8\x82\xAD\x82\xC8\x82\xC1\x82\xC4\x82\xA2\x82\xE9\x81""I" diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat Binary files differindex 4c651221c0..7b037b889b 100644 --- a/dists/engine-data/kyra.dat +++ b/dists/engine-data/kyra.dat diff --git a/engines/kyra/engine/eob.cpp b/engines/kyra/engine/eob.cpp index dc653fa38e..f9c872dee3 100644 --- a/engines/kyra/engine/eob.cpp +++ b/engines/kyra/engine/eob.cpp @@ -34,6 +34,8 @@ EoBEngine::EoBEngine(OSystem *system, const GameFlags &flags) _menuChoiceInit = 4; _turnUndeadString = 0; + _itemNamesPC98 = 0; + _numItemNamesPC98 = 0; _finBonusStrings = _npcStrings[1] = _npcStrings[2] = 0; _npcStrings[3] = _npcStrings[4] = _npcStrings[5] = _npcStrings[6] = 0; _npcStrings[7] = _npcStrings[8] = _npcStrings[9] = _npcStrings[10] = 0; diff --git a/engines/kyra/engine/eobcommon.cpp b/engines/kyra/engine/eobcommon.cpp index 4b6e88437f..3389d4fed0 100644 --- a/engines/kyra/engine/eobcommon.cpp +++ b/engines/kyra/engine/eobcommon.cpp @@ -82,8 +82,9 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags) : KyraRpgE _items = 0; _itemTypes = 0; _itemNames = 0; + _itemNamesPC98 = 0; _itemInHand = -1; - _numItems = _numItemNames = 0; + _numItems = _numItemNames = _numItemNamesPC98 = 0; _castScrollSlot = 0; _currentSub = 0; diff --git a/engines/kyra/engine/eobcommon.h b/engines/kyra/engine/eobcommon.h index e476f8a852..91d0a6e089 100644 --- a/engines/kyra/engine/eobcommon.h +++ b/engines/kyra/engine/eobcommon.h @@ -459,6 +459,8 @@ protected: EoBItemType *_itemTypes; char **_itemNames; uint16 _numItemNames; + int _numItemNamesPC98; + const char * const *_itemNamesPC98; uint32 _partyEffectFlags; Item _lastUsedItem; @@ -865,6 +867,9 @@ protected: const uint8 *_cgaMappingLevel[5]; const uint8 *_cgaLevelMappingIndex; + // hard coded 16 color palettes for PC98 version of EOB1 + const uint8 *_palette16c[10]; + bool _enableHiResDithering; // Default parameters will import all present original save files and push them to the top of the save dialog. diff --git a/engines/kyra/engine/items_eob.cpp b/engines/kyra/engine/items_eob.cpp index 3121f567f8..e784e2d3f9 100644 --- a/engines/kyra/engine/items_eob.cpp +++ b/engines/kyra/engine/items_eob.cpp @@ -50,9 +50,17 @@ void EoBCoreEngine::loadItemDefs() { _items[i].value = s->readSByte(); } - _numItemNames = s->readUint16(); - for (int i = 0; i < _numItemNames; i++) - s->read(_itemNames[i], 35); + if (_itemNamesPC98) { + _numItemNames = _numItemNamesPC98; + for (int i = 0; i < _numItemNames; i++) { + assert(strlen(_itemNamesPC98[i]) < 35); + Common::strlcpy(_itemNames[i], _itemNamesPC98[i], 34); + } + } else { + _numItemNames = s->readUint16(); + for (int i = 0; i < _numItemNames; i++) + s->read(_itemNames[i], 35); + } delete s; diff --git a/engines/kyra/resource/resource.h b/engines/kyra/resource/resource.h index cbd442fcc1..64247d14e8 100644 --- a/engines/kyra/resource/resource.h +++ b/engines/kyra/resource/resource.h @@ -506,6 +506,17 @@ enum KyraResources { kEoB1IntroFilesHands, kEoB1IntroFilesWdExit, kEoB1IntroFilesTunnel, + + kEoB1IntroStringsTower, + kEoB1IntroStringsOrb, + kEoB1IntroStringsWdEntry, + kEoB1IntroStringsKing, + kEoB1IntroStringsHands, + kEoB1IntroStringsWdExit, + kEoB1IntroStringsTunnel, + + kEoB1FinaleStrings, + kEoB1IntroOpeningFrmDelay, kEoB1IntroWdEncodeX, kEoB1IntroWdEncodeY, @@ -526,7 +537,11 @@ enum KyraResources { kEoB1FinaleCouncilAnim4, kEoB1FinaleEyesAnim, kEoB1FinaleHandsAnim, + kEoB1FinaleHandsAnim2, + kEoB1FinaleHandsAnim3, kEoB1FinaleTextDuration, + kEoB1CreditsStrings, + kEoB1CreditsCharWdth, kEoB1DoorShapeDefs, kEoB1DoorSwitchShapeDefs, @@ -554,6 +569,11 @@ enum KyraResources { kEoB1CgaMappingLevel3, kEoB1CgaMappingLevel4, + kEoB1Palettes16c, + kEoB1PalCycleData, + kEoB1PalCycleStyle1, + kEoB1PalCycleStyle2, + kEoB1NpcShpData, kEoB1NpcSubShpIndex1, kEoB1NpcSubShpIndex2, @@ -570,6 +590,11 @@ enum KyraResources { kEoB1Npc6Strings, kEoB1Npc7Strings, + kEoB1ItemNames, + kEoB1Ascii2SjisTable1, + kEoB1Ascii2SjisTable2, + kEoB1FontLookupTable, + kEoB2MainMenuStrings, kEoB2MainMenuUtilStrings, diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp index fcf3158f5e..29b899a9b2 100644 --- a/engines/kyra/resource/staticres.cpp +++ b/engines/kyra/resource/staticres.cpp @@ -39,7 +39,7 @@ namespace Kyra { -#define RESFILE_VERSION 94 +#define RESFILE_VERSION 95 namespace { bool checkKyraDat(Common::SeekableReadStream *file) { diff --git a/engines/kyra/resource/staticres_eob.cpp b/engines/kyra/resource/staticres_eob.cpp index 2082fc6ac4..2e299670e1 100644 --- a/engines/kyra/resource/staticres_eob.cpp +++ b/engines/kyra/resource/staticres_eob.cpp @@ -1162,6 +1162,13 @@ void EoBEngine::initStaticResource() { _cgaLevelMappingIndex = _staticres->loadRawData(kEoB1CgaLevelMappingIndex, temp); for (int i = 0; i < 5; i++) _cgaMappingLevel[i] = _staticres->loadRawData(kEoB1CgaMappingLevel0 + i, temp); + const uint8 *pal16c = _staticres->loadRawData(kEoB1Palettes16c, temp); + if (pal16c) { + for (int i = 0; i < 10; i++) + _palette16c[i] = pal16c + i * 48; + } + + _itemNamesPC98 = _staticres->loadStrings(kEoB1ItemNames, _numItemNamesPC98); _turnUndeadString = _staticres->loadStrings(kEoB1TurnUndeadString, temp); |