[Scummvm-tracker] [ScummVM :: Bugs] #16020: AWE: For the Amiga version the level codes shown are from the DOS version and don't work

ScummVM :: Bugs trac at scummvm.org
Mon Jun 16 09:30:42 UTC 2025


#16020: AWE: For the Amiga version the level codes shown are from the DOS version
and don't work
-----------------------+----------------------------------------------
Reporter:  antoniou79  |       Owner:  dreammaster
    Type:  defect      |      Status:  new
Priority:  normal      |   Component:  Engine: AWE
 Version:              |  Resolution:
Keywords:              |        Game:  Another World/Out of this World
-----------------------+----------------------------------------------
Comment (by eriktorbjorn):

 The level codes appear to be hard-coded in the Amiga executable:

 [[Image(image-20250616-110410.png)]]

 So something like this should do it? Though I have no idea if it ''only''
 applies to the Amiga version, or if it's other ones as well.

 {{{
 diff --git a/engines/awe/static_res.cpp b/engines/awe/static_res.cpp
 index 6ad3fbe4908..611afe9309b 100644
 --- a/engines/awe/static_res.cpp
 +++ b/engines/awe/static_res.cpp
 @@ -121,6 +121,29 @@ const uint8 Gfx::FONT[] = {
         0x38, 0x44, 0x82, 0x82, 0x44, 0x28, 0xEE, 0x00, 0x55, 0xAA, 0x55,
 0xAA, 0x55, 0xAA, 0x55, 0xAA
  };

 +const StrEntry Video::STRINGS_TABLE_AMIGA_CODES[] = {
 +       { 0x15E, "EDJI" },
 +       { 0x15F, "HICI" },
 +       { 0x160, "FLLD" },
 +       { 0x161, "EDIL" },
 +       { 0x162, "FADK" },
 +       { 0x163, "CCAL" },
 +       { 0x164, "LIBC" },
 +       { 0x165, "KCIJ" },
 +       { 0x166, "LDCI" },
 +       { 0x167, "ICAH" },
 +       { 0x168, "LDIJ" },
 +       { 0x169, "LALD" },
 +       { 0x16A, "KJIA" },
 +       { 0x16B, "LFEK" },
 +       { 0x16C, "FLAK" },
 +       { 0x16D, "LAEA" },
 +       { 0x16E, "FIEI" },
 +       { 0x16F, "GABK" },
 +       { 0x170, "KCGB" },
 +       { 0xFFFF, nullptr }
 +};
 +
  const StrEntry Video::STRINGS_TABLE_FR[] = {
         { 0x001, "P E A N U T  3000" },
         { 0x002, "Copyright  } 1990 Peanut Computer, Inc.\nAll rights
 reserved.\n\nCDOS Version 5.01" },
 diff --git a/engines/awe/video.cpp b/engines/awe/video.cpp
 index ae953d70fe4..34dec48e5aa 100644
 --- a/engines/awe/video.cpp
 +++ b/engines/awe/video.cpp
 @@ -322,7 +322,12 @@ void Video::drawString(uint8 color, uint16 x, uint16
 y, uint16 strId) {
         } else if (_res->getDataType() == DT_ATARI_DEMO && strId == 0x194)
 {
                 str = _str0x194AtariDemo;
         } else {
 -               str = findString(_stringsTable, strId);
 +               if (_res->getDataType() == DT_AMIGA) {
 +                       str = findString(STRINGS_TABLE_AMIGA_CODES,
 strId);
 +               }
 +               if (!str) {
 +                       str = findString(_stringsTable, strId);
 +               }
                 if (!str && _res->getDataType() == DT_DOS) {
                         str = findString(STRINGS_TABLE_DEMO, strId);
                 }
 diff --git a/engines/awe/video.h b/engines/awe/video.h
 index afa18e280fa..fcf87a353af 100644
 --- a/engines/awe/video.h
 +++ b/engines/awe/video.h
 @@ -42,6 +42,7 @@ struct Video {
                 BITMAP_H = 200
         };

 +       static const StrEntry STRINGS_TABLE_AMIGA_CODES[];
         static const StrEntry STRINGS_TABLE_FR[];
         static const StrEntry STRINGS_TABLE_ENG[];
         static const StrEntry STRINGS_TABLE_DEMO[];
 }}}
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/16020#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list