mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-05 17:57:14 +00:00
GLK: SCOTT: Add support for Questprobe Games
This commit is contained in:
parent
b45eecac99
commit
ff02ca6def
@ -66,7 +66,7 @@ struct C64Rec {
|
|||||||
size_t _copySource;
|
size_t _copySource;
|
||||||
size_t _copyDest;
|
size_t _copyDest;
|
||||||
size_t _copySize;
|
size_t _copySize;
|
||||||
size_t _imgOffset;
|
int _imgOffset;
|
||||||
};
|
};
|
||||||
|
|
||||||
static C64Rec g_C64Registry[] = {
|
static C64Rec g_C64Registry[] = {
|
||||||
@ -123,6 +123,10 @@ static C64Rec g_C64Registry[] = {
|
|||||||
{ SAVAGE_ISLAND_C64, 0x2ab00, 0xc361, TYPE_D64, 1, "-f86 -d0x1793", "SAVAGE ISLAND P1", 1, 0, 0 }, // Savage Island part 1 C64 (D64) alt
|
{ SAVAGE_ISLAND_C64, 0x2ab00, 0xc361, TYPE_D64, 1, "-f86 -d0x1793", "SAVAGE ISLAND P1", 1, 0, 0 }, // Savage Island part 1 C64 (D64) alt
|
||||||
{ SAVAGE_ISLAND2_C64, 0x2ab00, 0xc361, TYPE_D64, 1, nullptr, "SAVAGE ISLAND P2", 0, 0, 0 }, // Savage Island part 2 C64 (D64) alt
|
{ SAVAGE_ISLAND2_C64, 0x2ab00, 0xc361, TYPE_D64, 1, nullptr, "SAVAGE ISLAND P2", 0, 0, 0 }, // Savage Island part 2 C64 (D64) alt
|
||||||
|
|
||||||
|
{ HULK_C64, 0x2ab00, 0xcdd8, TYPE_D64, 0, nullptr, nullptr, 0, 0x1806, 0xb801, 0x307 }, // Questprobe 1 - The Hulk C64 (D64)
|
||||||
|
{ SPIDERMAN_C64, 0x2ab00, 0xde56, TYPE_D64, 0, nullptr, nullptr, 0, 0x1801, 0xa801, 0x2000 }, // Spiderman C64 (D64)
|
||||||
|
{ SPIDERMAN_C64, 0x08e72, 0xb2f4, TYPE_T64, 3, nullptr, nullptr, 0, 0, 0 }, // Spiderman C64 (T64) MasterCompressor / Relax -> ECA Compacker -> Section8 Packer
|
||||||
|
|
||||||
{ UNKNOWN_GAME, 0, 0, UNKNOWN_FILE_TYPE, 0, nullptr, nullptr, 0, 0, 0, 0 }
|
{ UNKNOWN_GAME, 0, 0, UNKNOWN_FILE_TYPE, 0, nullptr, nullptr, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -189,6 +189,7 @@ const GlkDetectionEntry SCOTT_GAMES[] = {
|
|||||||
DT_ENTRYL1("gremlins", Common::DE_DEU, "C64", "e5d743d8727c8aca011a737bbb5ad818", 49155),
|
DT_ENTRYL1("gremlins", Common::DE_DEU, "C64", "e5d743d8727c8aca011a737bbb5ad818", 49155),
|
||||||
DT_ENTRY1("seasofblood", "C64", "267c3fe2bb150365de0358f07b5df15c", 174848),
|
DT_ENTRY1("seasofblood", "C64", "267c3fe2bb150365de0358f07b5df15c", 174848),
|
||||||
DT_ENTRY1("seasofblood", "C64", "46280fb1d701a41492b8434467c31029", 41481),
|
DT_ENTRY1("seasofblood", "C64", "46280fb1d701a41492b8434467c31029", 41481),
|
||||||
|
DT_ENTRY1("marveladventure", "C64", "d80e133dd396565f773052cb317e8222", 174848),
|
||||||
|
|
||||||
//Scott Adams
|
//Scott Adams
|
||||||
DT_ENTRY1("adventureland", "C64", "05cf6c64ecde5288ae2e46099bfd19a3", 27152),
|
DT_ENTRY1("adventureland", "C64", "05cf6c64ecde5288ae2e46099bfd19a3", 27152),
|
||||||
|
@ -268,5 +268,58 @@ void adventureland64Sysmess() {
|
|||||||
_G(_sys)[SOMETHING] = "\" something. ";
|
_G(_sys)[SOMETHING] = "\" something. ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void spiderman64Sysmess() {
|
||||||
|
SysMessageType messagekey[] = {
|
||||||
|
NORTH,
|
||||||
|
SOUTH,
|
||||||
|
EAST,
|
||||||
|
WEST,
|
||||||
|
UP,
|
||||||
|
DOWN,
|
||||||
|
EXITS,
|
||||||
|
YOU_SEE,
|
||||||
|
YOU_ARE,
|
||||||
|
TOO_DARK_TO_SEE,
|
||||||
|
LIGHT_HAS_RUN_OUT,
|
||||||
|
LIGHT_RUNS_OUT_IN,
|
||||||
|
TURNS,
|
||||||
|
I_DONT_KNOW_HOW_TO,
|
||||||
|
SOMETHING,
|
||||||
|
I_DONT_KNOW_WHAT_A,
|
||||||
|
IS,
|
||||||
|
YOU_CANT_GO_THAT_WAY,
|
||||||
|
OK,
|
||||||
|
WHAT_NOW,
|
||||||
|
HUH,
|
||||||
|
YOU_HAVE_IT,
|
||||||
|
YOU_HAVENT_GOT_IT,
|
||||||
|
INVENTORY,
|
||||||
|
YOU_DONT_SEE_IT,
|
||||||
|
THATS_BEYOND_MY_POWER,
|
||||||
|
DANGEROUS_TO_MOVE_IN_DARK,
|
||||||
|
DIRECTION,
|
||||||
|
YOU_FELL_AND_BROKE_YOUR_NECK,
|
||||||
|
YOURE_CARRYING_TOO_MUCH,
|
||||||
|
IM_DEAD,
|
||||||
|
DROPPED,
|
||||||
|
TAKEN,
|
||||||
|
PLAY_AGAIN,
|
||||||
|
RESUME_A_SAVED_GAME,
|
||||||
|
IVE_STORED,
|
||||||
|
TREASURES,
|
||||||
|
ON_A_SCALE_THAT_RATES,
|
||||||
|
YOU_CANT_DO_THAT_YET,
|
||||||
|
I_DONT_UNDERSTAND,
|
||||||
|
NOTHING,
|
||||||
|
YOUVE_SOLVED_IT};
|
||||||
|
|
||||||
|
for (int i = 0; i < 42; i++) {
|
||||||
|
_G(_sys)[messagekey[i]] = _G(_systemMessages)[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
_G(_sys)[I_DONT_KNOW_HOW_TO] = "I don't know how to \"";
|
||||||
|
_G(_sys)[SOMETHING] = "\" something. ";
|
||||||
|
}
|
||||||
|
|
||||||
} // End of namespace Scott
|
} // End of namespace Scott
|
||||||
} // End of namespace Glk
|
} // End of namespace Glk
|
||||||
|
@ -41,6 +41,7 @@ void claymorgue64Sysmess();
|
|||||||
void adventurelandAction(int p);
|
void adventurelandAction(int p);
|
||||||
void adventurelandDarkness();
|
void adventurelandDarkness();
|
||||||
void adventureland64Sysmess();
|
void adventureland64Sysmess();
|
||||||
|
void spiderman64Sysmess();
|
||||||
|
|
||||||
} // End of namespace Scott
|
} // End of namespace Scott
|
||||||
} // End of namespace Glk
|
} // End of namespace Glk
|
||||||
|
@ -1779,5 +1779,134 @@ const GameInfo _games[NUMGAMES] = {
|
|||||||
21, // number_of_pictures;
|
21, // number_of_pictures;
|
||||||
C64B, // palette
|
C64B, // palette
|
||||||
3, // picture_format_version;
|
3, // picture_format_version;
|
||||||
|
0),
|
||||||
|
GameInfo("Questprobe 2: Spiderman",
|
||||||
|
SPIDERMAN,
|
||||||
|
NO_TYPE, // type
|
||||||
|
ENGLISH, // subtype
|
||||||
|
FOUR_LETTER_UNCOMPRESSED, // dictionary type
|
||||||
|
|
||||||
|
72, // Number of items
|
||||||
|
257, // Number of actions
|
||||||
|
124, // Number of words
|
||||||
|
40, // Number of rooms
|
||||||
|
12, // Max carried items
|
||||||
|
4, // Word length
|
||||||
|
99, // Number of messages
|
||||||
|
|
||||||
|
125, // number_of_verbs
|
||||||
|
125, // number_of_nouns;
|
||||||
|
|
||||||
|
0x246b, // header
|
||||||
|
EARLY, // header style
|
||||||
|
|
||||||
|
0x3dd1, // room images
|
||||||
|
FOLLOWS, // item flags
|
||||||
|
FOLLOWS, // item images
|
||||||
|
|
||||||
|
FOLLOWS, // actions
|
||||||
|
UNCOMPRESSED,
|
||||||
|
0x5036, // dictionary
|
||||||
|
0x5518, // start_of_room_descriptions;
|
||||||
|
0x4eac, // start_of_room_connections;
|
||||||
|
0x575e, // start_of_messages;
|
||||||
|
FOLLOWS, // start_of_item_descriptions;
|
||||||
|
0x4fa2, // start_of_item_locations;
|
||||||
|
|
||||||
|
0x2553, // start_of_system_messages
|
||||||
|
0x28f7, // start of directions
|
||||||
|
|
||||||
|
0x6296, // start_of_characters;
|
||||||
|
0x6a96, // start_of_image_data
|
||||||
|
-0x3fe5, // image_address_offset
|
||||||
|
41, // number_of_pictures;
|
||||||
|
ZXOPT, // palette
|
||||||
|
2, // picture_format_version;
|
||||||
|
0),
|
||||||
|
GameInfo("Questprobe 2: Spiderman C64",
|
||||||
|
SPIDERMAN_C64,
|
||||||
|
NO_TYPE, // type
|
||||||
|
static_cast<Subtype>(ENGLISH | C64), // subtype
|
||||||
|
FOUR_LETTER_UNCOMPRESSED, // dictionary type
|
||||||
|
|
||||||
|
72, // Number of items
|
||||||
|
245, // Number of actions
|
||||||
|
124, // Number of words
|
||||||
|
40, // Number of rooms
|
||||||
|
12, // Max carried items
|
||||||
|
4, // Word length
|
||||||
|
98, // Number of messages
|
||||||
|
|
||||||
|
118, // number_of_verbs
|
||||||
|
124, // number_of_nouns;
|
||||||
|
|
||||||
|
0x4baf, // header
|
||||||
|
EARLY, // header style
|
||||||
|
|
||||||
|
0x4bc9, // room images
|
||||||
|
0x70da, // item flags
|
||||||
|
FOLLOWS, // item images
|
||||||
|
|
||||||
|
0x4bf2, // actions
|
||||||
|
UNCOMPRESSED,
|
||||||
|
0x5b52, // dictionary
|
||||||
|
0x600c, // start_of_room_descriptions;
|
||||||
|
FOLLOWS, // start_of_room_connections;
|
||||||
|
FOLLOWS, // start_of_messages;
|
||||||
|
0x6b9b, // start_of_item_descriptions;
|
||||||
|
FOLLOWS, // start_of_item_locations;
|
||||||
|
|
||||||
|
0x0a7b, // start_of_system_messages
|
||||||
|
0x0a7b, // start of directions
|
||||||
|
|
||||||
|
0x716c, // start_of_characters;
|
||||||
|
0x796c, // start_of_image_data
|
||||||
|
0x716c, // image_address_offset
|
||||||
|
41, // number_of_pictures;
|
||||||
|
C64B, // palette
|
||||||
|
2, // picture_format_version;
|
||||||
|
0),
|
||||||
|
GameInfo("Questprobe 1: The Hulk C64", HULK_C64,
|
||||||
|
NO_TYPE, // type
|
||||||
|
ENGLISH, // subtype
|
||||||
|
FOUR_LETTER_UNCOMPRESSED, // dictionary type
|
||||||
|
|
||||||
|
54, // Number of items
|
||||||
|
261, // Number of actions
|
||||||
|
128, // Number of words
|
||||||
|
20, // Number of rooms
|
||||||
|
10, // Max carried items
|
||||||
|
4, // Word length
|
||||||
|
99, // Number of messages
|
||||||
|
|
||||||
|
128, // number_of_verbs
|
||||||
|
129, // number_of_nouns;
|
||||||
|
|
||||||
|
0x7867, // header
|
||||||
|
HULK_HEADER, // header style
|
||||||
|
|
||||||
|
0x2280, // room images
|
||||||
|
0, // item flags
|
||||||
|
0x22ba, // item images
|
||||||
|
|
||||||
|
0x8c47, // actions
|
||||||
|
HULK_ACTIONS,
|
||||||
|
0x7884, // dictionary
|
||||||
|
0x7d8d, // start_of_room_descriptions;
|
||||||
|
0x9CD1, // start_of_room_connections;
|
||||||
|
0x831E, // start_of_messages;
|
||||||
|
FOLLOWS, // start_of_item_descriptions;
|
||||||
|
0x8AFD, // start_of_item_locations;
|
||||||
|
|
||||||
|
// These are spread out all over the code
|
||||||
|
0, // start_of_system_messages
|
||||||
|
0xae25, // start of directions
|
||||||
|
|
||||||
|
0x0d01, // start_of_characters;
|
||||||
|
0x2701, // start_of_image_data
|
||||||
|
0, // image_address_offset
|
||||||
|
43, // number_of_pictures;
|
||||||
|
C64B, // palette
|
||||||
|
0, // picture_format_version;
|
||||||
0)
|
0)
|
||||||
};
|
};
|
||||||
|
@ -124,6 +124,7 @@ Globals::Globals() : _sys(MAX_SYSMESS), _directions(NUMBER_OF_DIRECTIONS), _extr
|
|||||||
_md5Index.setVal("05cf6c64ecde5288ae2e46099bfd19a3", 31); // adventureland
|
_md5Index.setVal("05cf6c64ecde5288ae2e46099bfd19a3", 31); // adventureland
|
||||||
_md5Index.setVal("5af919881417920ec6a3961b4577f587", 32); // adventureland
|
_md5Index.setVal("5af919881417920ec6a3961b4577f587", 32); // adventureland
|
||||||
_md5Index.setVal("414d459ceb211230356ad823475866b3", 38); // savage island
|
_md5Index.setVal("414d459ceb211230356ad823475866b3", 38); // savage island
|
||||||
|
_md5Index.setVal("d80e133dd396565f773052cb317e8222", 40); // questprobe hulk
|
||||||
}
|
}
|
||||||
|
|
||||||
Globals::~Globals() {
|
Globals::~Globals() {
|
||||||
|
@ -415,6 +415,15 @@ int tryLoadingHulk(GameInfo info, int dictStart) {
|
|||||||
}
|
}
|
||||||
ct++;
|
ct++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CURRENT_GAME == HULK_C64) {
|
||||||
|
_G(_hulkCoordinates) = 0x22cd;
|
||||||
|
_G(_hulkItemImageOffsets) = 0x2731;
|
||||||
|
_G(_hulkLookImageOffsets) = 0x2761;
|
||||||
|
_G(_hulkSpecialImageOffsets) = 0x2781;
|
||||||
|
_G(_hulkImageOffset) = -0x7ff;
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,6 +188,9 @@ void loadGameFile(Common::SeekableReadStream *f) {
|
|||||||
case GREMLINS_SPANISH:
|
case GREMLINS_SPANISH:
|
||||||
loadExtraSpanishGremlinsData();
|
loadExtraSpanishGremlinsData();
|
||||||
break;
|
break;
|
||||||
|
case SPIDERMAN_C64:
|
||||||
|
spiderman64Sysmess();
|
||||||
|
break;
|
||||||
case HULK_C64:
|
case HULK_C64:
|
||||||
case HULK:
|
case HULK:
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
|
@ -1114,8 +1114,7 @@ ActionResultType Scott::performLine(int ct) {
|
|||||||
switch (CURRENT_GAME) {
|
switch (CURRENT_GAME) {
|
||||||
case SPIDERMAN:
|
case SPIDERMAN:
|
||||||
case SPIDERMAN_C64:
|
case SPIDERMAN_C64:
|
||||||
// TODO
|
drawBlack();
|
||||||
// DrawBlack();
|
|
||||||
break;
|
break;
|
||||||
case SECRET_MISSION:
|
case SECRET_MISSION:
|
||||||
case SECRET_MISSION_C64:
|
case SECRET_MISSION_C64:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user