[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