aboutsummaryrefslogtreecommitdiff
path: root/engines/agos
diff options
context:
space:
mode:
authorTravis Howell2007-02-11 02:16:00 +0000
committerTravis Howell2007-02-11 02:16:00 +0000
commit6bdd106176abeb409d8b3049f1ac04841906fb81 (patch)
treed253fdbe97b047f4353d5f877ed9c1ccbee746f7 /engines/agos
parent841fd4f94fc20162f4d3c3e688e0c0669017777a (diff)
downloadscummvm-rg350-6bdd106176abeb409d8b3049f1ac04841906fb81.tar.gz
scummvm-rg350-6bdd106176abeb409d8b3049f1ac04841906fb81.tar.bz2
scummvm-rg350-6bdd106176abeb409d8b3049f1ac04841906fb81.zip
Add Acorn disk version of Simon the Sorcerer 1.
svn-id: r25480
Diffstat (limited to 'engines/agos')
-rw-r--r--engines/agos/agosgame.cpp22
-rw-r--r--engines/agos/intern.h1
-rw-r--r--engines/agos/res.cpp4
-rw-r--r--engines/agos/res_snd.cpp6
-rw-r--r--engines/agos/string.cpp4
-rw-r--r--engines/agos/subroutine.cpp4
6 files changed, 39 insertions, 2 deletions
diff --git a/engines/agos/agosgame.cpp b/engines/agos/agosgame.cpp
index 03f7762d3b..9db55855fa 100644
--- a/engines/agos/agosgame.cpp
+++ b/engines/agos/agosgame.cpp
@@ -394,6 +394,28 @@ static const AGOSGameDescription gameDescriptions[] = {
GF_OLD_BUNDLE
},
+ // Simon the Sorcerer 1 - English Acorn Floppy
+ {
+ {
+ "simon1",
+ "Floppy",
+
+ {
+ { "gamebase.dat", GAME_BASEFILE, "c392e494dcabed797b98cbcfc687b33a", -1},
+ { "icondata.dat", GAME_ICONFILE, "22107c24dfb31b66ac503c28a6e20b19", -1},
+ { "stripped.dat", GAME_STRFILE, "c95a0a1ee973e19c2a1c5d12026c139f", -1},
+ { "tbllist.dat", GAME_TBLFILE, "d198a80de2c59e4a0cd24b98814849e8", -1},
+ { NULL, 0, NULL, 0}
+ },
+ Common::EN_ANY,
+ Common::kPlatformAcorn
+ },
+
+ GType_SIMON1,
+ GID_SIMON1ACORN,
+ GF_OLD_BUNDLE
+ },
+
// Simon the Sorcerer 1 - English Acorn CD Demo
{
{
diff --git a/engines/agos/intern.h b/engines/agos/intern.h
index b413807e6c..af25030d5d 100644
--- a/engines/agos/intern.h
+++ b/engines/agos/intern.h
@@ -234,6 +234,7 @@ enum GameIds {
GID_WAXWORKS,
GID_SIMON1DOS,
+ GID_SIMON1ACORN,
GID_SIMON1AMIGA,
GID_SIMON1CD32,
GID_SIMON1TALKIE,
diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp
index a4d003b29a..559407e98a 100644
--- a/engines/agos/res.cpp
+++ b/engines/agos/res.cpp
@@ -677,7 +677,9 @@ void AGOSEngine::loadVGAVideoFile(uint id, uint type) {
dst = allocBlock(dstSize + extraBuffer);
decompressData(filename, dst, offs, srcSize, dstSize);
} else if (getFeatures() & GF_OLD_BUNDLE) {
- if (getPlatform() == Common::kPlatformAmiga || getPlatform() == Common::kPlatformAtariST) {
+ if (getPlatform() == Common::kPlatformAcorn) {
+ sprintf(filename, "%.3d%d.DAT", id, type);
+ } else if (getPlatform() == Common::kPlatformAmiga || getPlatform() == Common::kPlatformAtariST) {
if (getFeatures() & GF_TALKIE) {
sprintf(filename, "%.3d%d.out", id, type);
} else if (getGameType() == GType_ELVIRA1 && getFeatures() & GF_DEMO) {
diff --git a/engines/agos/res_snd.cpp b/engines/agos/res_snd.cpp
index eaa13cabea..305bd3e7e3 100644
--- a/engines/agos/res_snd.cpp
+++ b/engines/agos/res_snd.cpp
@@ -120,7 +120,9 @@ void AGOSEngine::skipSpeech() {
void AGOSEngine::loadMusic(uint music) {
char buf[4];
- if (getPlatform() == Common::kPlatformAtariST) {
+ if (getGameId() == GID_SIMON1ACORN) {
+ // TODO: Add support for music format used by Simon 1 Floppy
+ } else if (getPlatform() == Common::kPlatformAtariST) {
// TODO: Add support for music format used by Elvira 2
} else if (getPlatform() == Common::kPlatformAmiga) {
_mixer->stopHandle(_modHandle);
@@ -130,6 +132,8 @@ void AGOSEngine::loadMusic(uint music) {
if (getGameType() == GType_ELVIRA1 && getFeatures() & GF_DEMO)
sprintf(filename, "elvira2");
+ else if (getPlatform() == Common::kPlatformAcorn)
+ sprintf(filename, "%dtune.DAT", music);
else
sprintf(filename, "%dtune", music);
diff --git a/engines/agos/string.cpp b/engines/agos/string.cpp
index 2b999a6eca..78acffa57e 100644
--- a/engines/agos/string.cpp
+++ b/engines/agos/string.cpp
@@ -156,6 +156,10 @@ void AGOSEngine::loadTextIntoMem(uint stringId) {
filename[i] = 0;
p++;
+ if (getPlatform() == Common::kPlatformAcorn) {
+ sprintf(filename, "%s.DAT", filename);
+ }
+
base_max = (p[0] * 256) | p[1];
p += 2;
diff --git a/engines/agos/subroutine.cpp b/engines/agos/subroutine.cpp
index 59135d48b9..d3ecb3fa28 100644
--- a/engines/agos/subroutine.cpp
+++ b/engines/agos/subroutine.cpp
@@ -360,6 +360,10 @@ bool AGOSEngine::loadTablesNewIntoMem(uint subr_id) {
filename[i] = 0;
p++;
+ if (getPlatform() == Common::kPlatformAcorn) {
+ sprintf(filename, "%s.DAT", filename);
+ }
+
for (;;) {
min_num = READ_BE_UINT16(p); p += 2;
if (min_num == 0)