mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-17 07:07:10 +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 _copyDest;
|
||||
size_t _copySize;
|
||||
size_t _imgOffset;
|
||||
int _imgOffset;
|
||||
};
|
||||
|
||||
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_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 }
|
||||
};
|
||||
|
||||
|
@ -189,6 +189,7 @@ const GlkDetectionEntry SCOTT_GAMES[] = {
|
||||
DT_ENTRYL1("gremlins", Common::DE_DEU, "C64", "e5d743d8727c8aca011a737bbb5ad818", 49155),
|
||||
DT_ENTRY1("seasofblood", "C64", "267c3fe2bb150365de0358f07b5df15c", 174848),
|
||||
DT_ENTRY1("seasofblood", "C64", "46280fb1d701a41492b8434467c31029", 41481),
|
||||
DT_ENTRY1("marveladventure", "C64", "d80e133dd396565f773052cb317e8222", 174848),
|
||||
|
||||
//Scott Adams
|
||||
DT_ENTRY1("adventureland", "C64", "05cf6c64ecde5288ae2e46099bfd19a3", 27152),
|
||||
|
@ -268,5 +268,58 @@ void adventureland64Sysmess() {
|
||||
_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 Glk
|
||||
|
@ -41,6 +41,7 @@ void claymorgue64Sysmess();
|
||||
void adventurelandAction(int p);
|
||||
void adventurelandDarkness();
|
||||
void adventureland64Sysmess();
|
||||
void spiderman64Sysmess();
|
||||
|
||||
} // End of namespace Scott
|
||||
} // End of namespace Glk
|
||||
|
@ -1779,5 +1779,134 @@ const GameInfo _games[NUMGAMES] = {
|
||||
21, // number_of_pictures;
|
||||
C64B, // palette
|
||||
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)
|
||||
};
|
||||
|
@ -124,6 +124,7 @@ Globals::Globals() : _sys(MAX_SYSMESS), _directions(NUMBER_OF_DIRECTIONS), _extr
|
||||
_md5Index.setVal("05cf6c64ecde5288ae2e46099bfd19a3", 31); // adventureland
|
||||
_md5Index.setVal("5af919881417920ec6a3961b4577f587", 32); // adventureland
|
||||
_md5Index.setVal("414d459ceb211230356ad823475866b3", 38); // savage island
|
||||
_md5Index.setVal("d80e133dd396565f773052cb317e8222", 40); // questprobe hulk
|
||||
}
|
||||
|
||||
Globals::~Globals() {
|
||||
|
@ -415,6 +415,15 @@ int tryLoadingHulk(GameInfo info, int dictStart) {
|
||||
}
|
||||
ct++;
|
||||
}
|
||||
|
||||
if (CURRENT_GAME == HULK_C64) {
|
||||
_G(_hulkCoordinates) = 0x22cd;
|
||||
_G(_hulkItemImageOffsets) = 0x2731;
|
||||
_G(_hulkLookImageOffsets) = 0x2761;
|
||||
_G(_hulkSpecialImageOffsets) = 0x2781;
|
||||
_G(_hulkImageOffset) = -0x7ff;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -188,6 +188,9 @@ void loadGameFile(Common::SeekableReadStream *f) {
|
||||
case GREMLINS_SPANISH:
|
||||
loadExtraSpanishGremlinsData();
|
||||
break;
|
||||
case SPIDERMAN_C64:
|
||||
spiderman64Sysmess();
|
||||
break;
|
||||
case HULK_C64:
|
||||
case HULK:
|
||||
for (int i = 0; i < 6; i++) {
|
||||
|
@ -1114,8 +1114,7 @@ ActionResultType Scott::performLine(int ct) {
|
||||
switch (CURRENT_GAME) {
|
||||
case SPIDERMAN:
|
||||
case SPIDERMAN_C64:
|
||||
// TODO
|
||||
// DrawBlack();
|
||||
drawBlack();
|
||||
break;
|
||||
case SECRET_MISSION:
|
||||
case SECRET_MISSION_C64:
|
||||
|
Loading…
Reference in New Issue
Block a user