[Scummvm-cvs-logs] SF.net SVN: scummvm: [24120] scummvm/trunk/engines/agos
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Thu Oct 5 05:43:48 CEST 2006
Revision: 24120
http://svn.sourceforge.net/scummvm/?rev=24120&view=rev
Author: kirben
Date: 2006-10-04 20:43:40 -0700 (Wed, 04 Oct 2006)
Log Message:
-----------
Add Amiga versions of Elvira 1/2 and Waxworks
Modified Paths:
--------------
scummvm/trunk/engines/agos/agos.cpp
scummvm/trunk/engines/agos/game.cpp
scummvm/trunk/engines/agos/midiparser_s1d.cpp
scummvm/trunk/engines/agos/res.cpp
Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp 2006-10-05 02:08:51 UTC (rev 24119)
+++ scummvm/trunk/engines/agos/agos.cpp 2006-10-05 03:43:40 UTC (rev 24120)
@@ -616,7 +616,7 @@
#else
_vgaMemSize = gVars->memory[kMemSimon1Games];
#endif
- _itemMemSize = 64000;
+ _itemMemSize = 80000;
_tableMemSize = 50000;
_frameRate = 4;
_vgaBaseDelay = 1;
@@ -645,7 +645,7 @@
_vgaMemSize = gVars->memory[kMemSimon1Games];
#endif
_itemMemSize = 64000;
- _tableMemSize = 80000;
+ _tableMemSize = 256000;
_frameRate = 4;
_vgaBaseDelay = 1;
_numVars = 512;
@@ -2364,6 +2364,9 @@
midi.startTrack (0);
} else {
+ if (getPlatform() == Common::kPlatformAmiga)
+ return;
+
midi.stop();
midi.setLoop (true); // Must do this BEFORE loading music. (GMF may have its own override.)
Modified: scummvm/trunk/engines/agos/game.cpp
===================================================================
--- scummvm/trunk/engines/agos/game.cpp 2006-10-05 02:08:51 UTC (rev 24119)
+++ scummvm/trunk/engines/agos/game.cpp 2006-10-05 03:43:40 UTC (rev 24120)
@@ -169,6 +169,11 @@
using Common::ADGameFileDescription;
using Common::ADGameDescription;
+static ADGameFileDescription ELVIRA1AMIGA_GameFiles[] = {
+ { "gameamiga", GAME_BASEFILE, "7bdaff4a118d8035047cf9b1393b3fa0"},
+ { "icon.dat", GAME_ICONFILE, "2db931e84f1ca01f0816dddfae3f49e1"},
+};
+
static ADGameFileDescription ELVIRA1DOS_GameFiles[] = {
{ "gamepc", GAME_BASEFILE, "a49e132a1f18306dd5d1ec2fe435e178"},
{ "icon.dat", GAME_ICONFILE, "fda48c9da7f3e72d0313e2f5f760fc45"},
@@ -181,6 +186,13 @@
{ "tbllist", GAME_TBLFILE, "319f6b227c7822a551f57d24e70f8149"},
};
+static ADGameFileDescription ELVIRA2AMIGA_GameFiles[] = {
+ { "gameamiga", GAME_BASEFILE, "4aa163967f5d2bd319f8350d6af03186"},
+ { "icon.dat", GAME_ICONFILE, "a88b1c02e13ab04dd790ec30502c323d"},
+ { "stripped.txt", GAME_STRFILE, "41c975a9c1106cb5298a0bc3df0a266e"},
+ { "tbllist", GAME_TBLFILE, "177f5f2640e80ef92d1421d32de06a5e"},
+};
+
static ADGameFileDescription ELVIRA2DOS_GameFiles[] = {
{ "gamepc", GAME_BASEFILE, "3313254722031b22d833a2cf45a91fd7"},
{ "icon.dat", GAME_ICONFILE, "83a7278bff55c82fbb3aef92981866c9"},
@@ -195,6 +207,14 @@
{ "tbllist", GAME_TBLFILE, "8252660df0edbdbc3e6377e155bbd0c5"},
};
+static ADGameFileDescription WAXWORKSAMIGA_GameFiles[] = {
+ { "gameamiga", GAME_BASEFILE, "e6207a69cf7356f13acbe8d14bdd844e"}, // Unpacked version
+ { "icon.pkd", GAME_ICONFILE, "4822a91c18b1b2005ac17fc617f7dcbe"},
+ { "stripped.txt", GAME_STRFILE, "6faaebff2786216900061eeb978f10af"},
+ { "tbllist", GAME_TBLFILE, "95c44bfc380770a6b6dd0dfcc69e80a0"},
+ { "xtbllist", GAME_XTBLFILE, "6c7b3db345d46349a5226f695c03e20f"},
+};
+
static ADGameFileDescription WAXWORKSDOS_GameFiles[] = {
{ "gamepc", GAME_BASEFILE, "7751e9358e894e32ef40ef3b3bae0f2a"},
{ "icon.dat", GAME_ICONFILE, "ef1b8ad3494cf103dc10a99fe152ef9a"},
@@ -648,11 +668,27 @@
};
static AGOSGameDescription gameDescriptions[] = {
- // Elvira - English Floppy
+ // Elvira - English Amiga Floppy
{
{
"elvira",
"Floppy",
+ ARRAYSIZE(ELVIRA1AMIGA_GameFiles),
+ ELVIRA1AMIGA_GameFiles,
+ Common::EN_ANY,
+ Common::kPlatformAmiga,
+ },
+
+ GType_ELVIRA,
+ GID_ELVIRA,
+ GF_OLD_BUNDLE | GF_CRUNCHED,
+ },
+
+ // Elvira - English DOS Floppy
+ {
+ {
+ "elvira",
+ "Floppy",
ARRAYSIZE(ELVIRA1DOS_GameFiles),
ELVIRA1DOS_GameFiles,
Common::EN_ANY,
@@ -664,7 +700,7 @@
GF_OLD_BUNDLE,
},
- // Elvira - English Floppy Alternative?
+ // Elvira - English DOS Floppy Alternative?
{
{
"elvira",
@@ -680,11 +716,27 @@
GF_OLD_BUNDLE,
},
- // Elvira 2 - English Floppy
+ // Elvira 2 - English Amiga Floppy
{
{
"elvira2",
"Floppy",
+ ARRAYSIZE(ELVIRA2AMIGA_GameFiles),
+ ELVIRA2AMIGA_GameFiles,
+ Common::EN_ANY,
+ Common::kPlatformAmiga,
+ },
+
+ GType_ELVIRA2,
+ GID_ELVIRA2,
+ GF_OLD_BUNDLE | GF_CRUNCHED,
+ },
+
+ // Elvira 2 - English DOS Floppy
+ {
+ {
+ "elvira2",
+ "Floppy",
ARRAYSIZE(ELVIRA2DOS_GameFiles),
ELVIRA2DOS_GameFiles,
Common::EN_ANY,
@@ -696,7 +748,7 @@
GF_OLD_BUNDLE,
},
- // Elvira 2 - French Floppy
+ // Elvira 2 - French DOS Floppy
{
{
"elvira2",
@@ -712,11 +764,27 @@
GF_OLD_BUNDLE,
},
- // Waxworks - English Floppy
+ // Waxworks - English Amiga Floppy
{
{
"waxworks",
"Floppy",
+ ARRAYSIZE(WAXWORKSAMIGA_GameFiles),
+ WAXWORKSAMIGA_GameFiles,
+ Common::EN_ANY,
+ Common::kPlatformAmiga,
+ },
+
+ GType_WW,
+ GID_WAXWORKS,
+ GF_OLD_BUNDLE | GF_CRUNCHED,
+ },
+
+ // Waxworks - English DOS Floppy
+ {
+ {
+ "waxworks",
+ "Floppy",
ARRAYSIZE(WAXWORKSDOS_GameFiles),
WAXWORKSDOS_GameFiles,
Common::EN_ANY,
@@ -760,7 +828,7 @@
GF_TALKIE,
},
- // Simon the Sorcerer 1 - English AGA Floppy
+ // Simon the Sorcerer 1 - English Amiga AGA Floppy
{
{
"simon1",
@@ -776,7 +844,7 @@
GF_CRUNCHED | GF_OLD_BUNDLE,
},
- // Simon the Sorcerer 1 - French AGA Floppy
+ // Simon the Sorcerer 1 - French Amiga AGA Floppy
{
{
"simon1",
@@ -792,7 +860,7 @@
GF_CRUNCHED | GF_OLD_BUNDLE,
},
- // Simon the Sorcerer 1 - German AGA Floppy
+ // Simon the Sorcerer 1 - German Amiga AGA Floppy
{
{
"simon1",
Modified: scummvm/trunk/engines/agos/midiparser_s1d.cpp
===================================================================
--- scummvm/trunk/engines/agos/midiparser_s1d.cpp 2006-10-05 02:08:51 UTC (rev 24119)
+++ scummvm/trunk/engines/agos/midiparser_s1d.cpp 2006-10-05 03:43:40 UTC (rev 24120)
@@ -115,7 +115,7 @@
// OTherwise fall through to default.
default:
- debug(3, "MidiParser_S1D: Unexpected byte 0x%02X found", (int) info.command());
+ debug(6, "MidiParser_S1D: Unexpected byte 0x%02X found", (int) info.command());
break;
}
}
Modified: scummvm/trunk/engines/agos/res.cpp
===================================================================
--- scummvm/trunk/engines/agos/res.cpp 2006-10-05 02:08:51 UTC (rev 24119)
+++ scummvm/trunk/engines/agos/res.cpp 2006-10-05 03:43:40 UTC (rev 24120)
@@ -173,7 +173,8 @@
in.close();
- if (getGameType() == GType_PP)
+ if ((getGameType() == GType_ELVIRA && getPlatform() == Common::kPlatformAmiga) ||
+ getGameType() == GType_PP)
return;
/* Read list of TABLE resources */
@@ -210,42 +211,42 @@
in.read(_strippedTxtMem, file_size);
in.close();
- if (getGameType() != GType_WW)
- return;
+ if (getGameType() == GType_WW && getPlatform() == Common::kPlatformPC) {
+ /* Read list of ROOM ITEMS resources */
+ in.open(getFileName(GAME_RMSLFILE));
+ if (in.isOpen() == false) {
+ error("loadGamePcFile: Can't load room resources file '%s'", getFileName(GAME_XTBLFILE));
+ }
- /* Read list of ROOM ITEMS resources */
- in.open(getFileName(GAME_RMSLFILE));
- if (in.isOpen() == false) {
- error("loadGamePcFile: Can't load room resources file '%s'", getFileName(GAME_XTBLFILE));
- }
+ file_size = in.size();
- file_size = in.size();
-
- _roomsList = (byte *)malloc(file_size);
- if (_roomsList == NULL)
- error("loadGamePcFile: Out of memory for room items list");
- in.read(_roomsList, file_size);
- in.close();
-
- /* Read list of XTABLE resources */
- in.open(getFileName(GAME_XTBLFILE));
- if (in.isOpen() == false) {
- error("loadGamePcFile: Can't load xtable resources file '%s'", getFileName(GAME_XTBLFILE));
+ _roomsList = (byte *)malloc(file_size);
+ if (_roomsList == NULL)
+ error("loadGamePcFile: Out of memory for room items list");
+ in.read(_roomsList, file_size);
+ in.close();
}
- file_size = in.size();
+ if (getGameType() == GType_WW) {
+ /* Read list of XTABLE resources */
+ in.open(getFileName(GAME_XTBLFILE));
+ if (in.isOpen() == false) {
+ error("loadGamePcFile: Can't load xtable resources file '%s'", getFileName(GAME_XTBLFILE));
+ }
- _xtblList = (byte *)malloc(file_size);
- if (_xtblList == NULL)
- error("loadGamePcFile: Out of memory for strip xtable list");
- in.read(_xtblList, file_size);
- in.close();
+ file_size = in.size();
- /* Remember the current state */
- _xsubroutineListOrg = _subroutineList;
- _xtablesHeapPtrOrg = _tablesHeapPtr;
- _xtablesHeapCurPosOrg = _tablesHeapCurPos;
+ _xtblList = (byte *)malloc(file_size);
+ if (_xtblList == NULL)
+ error("loadGamePcFile: Out of memory for strip xtable list");
+ in.read(_xtblList, file_size);
+ in.close();
+ /* Remember the current state */
+ _xsubroutineListOrg = _subroutineList;
+ _xtablesHeapPtrOrg = _tablesHeapPtr;
+ _xtablesHeapCurPosOrg = _tablesHeapCurPos;
+ }
}
void AGOSEngine::readGamePcText(Common::File *in) {
@@ -668,6 +669,8 @@
if (getPlatform() == Common::kPlatformAmiga) {
if (getFeatures() & GF_TALKIE)
sprintf(filename, "%.3d%d.out", id, type);
+ else if (getGameType() == GType_ELVIRA || getGameType() == GType_ELVIRA2)
+ sprintf(filename, "%.2d%d.pkd", id, type);
else
sprintf(filename, "%.3d%d.pkd", id, type);
} else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list